【发布时间】:2021-07-23 21:48:06
【问题描述】:
我在使用 jpackage 打包程序时遇到的问题需要帮助。该程序是在 Eclipse 中创建的非模块化 JavaFX 应用程序。在 Eclipse 中,应用程序可以准确地编译和运行。但是当我使用命令提示符进行编译和运行时,编译工作但应用程序不再运行。我收到以下错误消息:
java.lang.NullPointerException:无法调用 “java.net.URL.toExternalForm()”因为返回值 “java.lang.Class.getResource(String)”为空 在 application.Main.start(Main.java:158) 在 javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846) 在 javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455) 在 javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) 在 java.base/java.security.AccessController.doPrivileged(AccessController.java:391) 在 javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) 在 javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) 在 javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native 方法) 在 javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) 在 java.base/java.lang.Thread.run(Thread.java:832)
尽管如此,jpackage 创建的安装程序没有任何错误或警告消息。使用创建的安装程序进行安装也可以正常工作。但是当我启动我的应用程序时,我的 GUI 将不会显示。更准确地说:GUI 的第一部分是一些设置窗口,它们使用标准布局。显示设置窗口,但不显示“主”GUI。因此,我认为问题的根源在于缺少的 css 文件。 我的假设是否正确,如果是:我该如何解决?
提前致谢!
附录:这是我的命令提示符输入:
-
dir /s /b *.java > sources.txt
-
javac --module-path %PATH_TO_FX% --add-modules javafx.controls,javafx.fxml –d out @sources.txt
-
java --module-path %PATH_TO_FX% --add-modules javafx.controls,javafx.fxml --cp out application.Main(这里出现错误)
-
jar --create --file=libs/sample1.jar --main-class=application.Main –C out .
-
%JAVA_HOME%\bin\jpackage --type exe –i libs --main-jar sample1.jar –n Sample1 --module-path %PATH_TO_FX_MODS% --add-modules javafx.controls,javafx.fxml -- main-class application.Main --win-shortcut --win-menu --win-dir-chooser
css 文件与主类位于同一目录中。
【问题讨论】:
-
可能您的 CSS 资源的路径不正确 由于您没有发布代码,因此无法确定。请参阅 stackoverflow.com/questions/61531317/…
标签: java css javafx installation jpackage