jpackage --type msi --name FileChooser -p "%JAVAFX_HOME%\lib;%M2_REPO%;org\openjfx\mavenfxfilechooser\mavenfxfilechooser.jar" --module "org.openjfx.mavenfxfilechooser/org.openjfx.mavenfxfilechooser.FileChooserApp"
jpackage --type msi --name FileChooser -p "%JMODS_HOME%;%M2_REPO%;C:\Users\hrh74\Downloads\Lib\file\org\openjfx\mavenfxfilechooser" --module "org.openjfx.mavenfxfilechooser/org.openjfx.mavenfxfilechooser.FileChooserApp"
我使用MSI运行时映像安装了应用程序,这无疑解决了“无法启动JVM”问题。该应用程序已启动,但是,我有一个WebView组件,当用户单击“ Yahoo”按钮时,该WebView组件应显示https://us.yahoo.com中的内容,并且当该应用程序作为独立应用程序运行时,这似乎不起作用但是当我从命令行运行jar文件时,它可以工作。我需要在jpackage中添加任何内容吗?
请让我知道是否需要源代码和FXML文件。
谢谢
答案 0 :(得分:0)
您看过running JavaFX application after jpackage吗?尝试下载Gluon jmods并使用它代替%JAVAFX_HOME%
答案 1 :(得分:0)
您的原始问题与缺少本机代码有关。但是您似乎已经通过使用 Gluon 提供的 JavaFX 的 JMOD 文件解决了这个问题。因此,我会尽力帮助解决您创建独立应用程序后 https://us.yahoo.com
未加载到 WebView
中的其他问题。
尝试自己加载该网站时,我遇到了与您相同的问题。虽然有时我会收到“我们正在解决问题”的页面响应,但有时整个应用程序会变得无响应,而有时什么也不会发生(加载似乎只是“正常”失败)。这也发生在其他网站上,而不仅仅是雅虎。经过一些测试,我终于能够得到以下错误:
java.lang.Throwable: SSL handshake failed
at javafx.web/javafx.scene.web.WebEngine$LoadWorker.describeError(Unknown Source)
at javafx.web/javafx.scene.web.WebEngine$LoadWorker.dispatchLoadEvent(Unknown Source)
at javafx.web/javafx.scene.web.WebEngine$PageLoadListener.dispatchLoadEvent(Unknown Source)
at javafx.web/com.sun.webkit.WebPage.fireLoadEvent(Unknown Source)
at javafx.web/com.sun.webkit.WebPage.fwkFireLoadEvent(Unknown Source)
at javafx.web/com.sun.webkit.network.URLLoaderBase.twkDidFail(Native Method)
at javafx.web/com.sun.webkit.network.HTTP2Loader.notifyDidFail(Unknown Source)
at javafx.web/com.sun.webkit.network.HTTP2Loader.lambda$didFail$18(Unknown Source)
at javafx.web/com.sun.webkit.network.HTTP2Loader.lambda$callBackIfNotCanceled$10(Unknown Source)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(Unknown Source)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
这表明 jpackage
创建的应用程序缺少一些加密库。从这里我只是猜测,但包括:
--add-modules jdk.crypto.cryptoki,jdk.crypto.ec
运行时 jpackage
似乎解决了问题。我不知道是否需要两个模块,或者是否只需要一个(或者是否添加一个隐式添加另一个)。
旁注:滚动浏览 https://us.yahoo.com
时,我经常会收到以下警告:
Mar 05, 2021 12:10:40 PM com.sun.javafx.webkit.prism.WCMediaPlayerImpl onError
WARNING: onError, errCode=0, msg=Could not create player!
还有:
Mar 05, 2021 12:10:41 PM com.sun.javafx.webkit.prism.WCMediaPlayerImpl$CreateThread run
WARNING: CreateThread ERROR: java.lang.UnsupportedOperationException: Unsupported protocol "data"
无论应用程序是如何打包的,我都会收到该警告。我不知道如何解决这个问题,也不知道是否有不修改JavaFX代码本身的解决方案。