我需要帮助解决在使用 jpackage 打包程序时遇到的问题。该程序是在 Eclipse 中创建的非模块化 JavaFX 应用程序。在 Eclipse 中,应用程序可以准确地编译和运行。但是当我使用命令提示符进行编译和运行时,编译工作但应用程序不再运行。我收到以下错误消息:
java.lang.NullPointerException:无法调用“java.net.URL.toExternalForm()”,因为“java.lang.Class.getResource(String)”的返回值为 null 在 application.Main.start(Main.java:158 ) at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java :455) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) at java.base/java.security.AccessController.doPrivileged(AccessController.java:391) at 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 Method) at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) at java.base/java.lang.Thread.run(Thread.爪哇:832)
尽管如此,jpackage 创建了一个安装程序,没有任何错误或警告消息。使用创建的安装程序进行安装也可以正常工作。但是当我启动我的应用程序时,我的 GUI 将不会显示。更准确地说:GUI 的第一部分是一些设置窗口,它们使用标准布局。显示设置窗口,但不显示“主”GUI。因此,我认为问题的根源在于缺少的 css 文件。我的假设是否正确,如果是的话:我该如何解决?
提前致谢!
附录:这是我的命令提示符输入:
目录 /s /b *.java > 来源.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 文件与主类位于同一目录中。