2

我们正在使用 Openjfx ( https://openjfx.io ) 和 OpenWebStart ( https://openwebstart.com ) 将 Java 1.8 JavaFX/Webstart 应用程序迁移到 Java 11。

我们成功地将应用程序迁移并运行到 JavaFx-14 (OpenJfx)。现在要在 IDE 上运行它,需要包含以下 jvm 参数:

 --module-path 'path/javafx-sdk-11.0.2/lib' --add-modules javafx.controls,javafx.fxml

我们使用 Maven 构建应用程序。它在 Java 1.8 上运行良好。它对所有 jar 进行签名,创建包和 jnlp 文件。Maven 还创建了一个包含所有依赖项的“uber jar”。我们迁移了 POM,包括新的 deps。我们通过命令行使用 uber jar 文件(使用 --module-path 参数)手动运行应用程序对其进行了测试。

我们在 .jnlp 文件中包含了 --module-path 参数:

    <?xml version="1.0" encoding="utf-8"?>
    <jnlp
      spec="1.0+"
      codebase="http://localhost:8080/download/"
      href="myapp.jnlp">
      <information>
        <title>MyApp</title>
        <vendor>Myself</vendor>
        <homepage href="http://localhost:8080"/>
        <description>My App</description>
        <description>Migration test</description>
        <offline-allowed/>
      </information>

      <security>
         <all-permissions/>
      </security>    

      <resources>
        <j2se version="11" 
          initial-heap-size="256m" 
          max-heap-size="2048m" 
          java-vm-args="-Xms256m -Xmx4096m -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=25 --module-path '/Users/chocksmith/Desktop/javafx-sdk-11.0.2/lib' --add-modules javafx.controls,javafx.fxml"/>
        <jar href="myapp-5.0.0.jar"/>
      </resources>
      <application-desc main-class="com.mycompany.myproduct.application.App"/> 
    </jnlp> 

不幸的是它失败了:

Caused by: java.lang.ClassNotFoundException: javafx.application.Application
    at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:670)

我们的想法在这里用完了。请指教!

4

2 回答 2

2

OpenWebStart now provides several points about running JavaFX based application in an FAQ: https://github.com/karakun/OpenWebStart/blob/master/documentation/faq/FAQ.adoc

If this does not help please open an issue at https://github.com/karakun/OpenWebStart/issues

于 2020-06-19T14:59:29.993 回答
1

FX 必须捆绑在客户端的 JDK 中。

我们设法使其与 Zulo 社区版本 13.29.11 一起使用

https://www.azul.com/downloads/zulu-community/?architecture=x86-64-bit&package=jdk-fx

使用“OpenWebStart Settings.app”应用程序在您的系统上配置正确的 JVM。

于 2020-04-03T17:26:34.740 回答