【问题标题】:How to use Openjfx in a webstart application using OpenWebStart如何在使用 OpenWebStart 的 webstart 应用程序中使用 Openjfx
【发布时间】:2020-07-15 16:16:45
【问题描述】:

我们正在使用 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)

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

【问题讨论】:

    标签: java openjfx openwebstart


    【解决方案1】:

    OpenWebStart 现在在一个常见问题解答中提供了关于运行基于 JavaFX 的应用程序的几点:https://github.com/karakun/OpenWebStart/blob/master/documentation/faq/FAQ.adoc

    如果这没有帮助,请在https://github.com/karakun/OpenWebStart/issues提出问题

    【讨论】:

    • 谢谢你!我们会检查的!
    【解决方案2】:

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

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

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

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

    【讨论】:

    • 从 Java 11 / JavaFX 11 开始,使用 JavaFX 的首选方式是将其添加为依赖项。见openjfx.io/openjfx-docs
    猜你喜欢
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 2019-03-14
    • 2014-10-30
    • 2020-09-07
    • 1970-01-01
    相关资源
    最近更新 更多