可执行的 .jar 文件不运行

我的 .jar 文件有问题。当我在 IDEA 中运行它时它工作得非常完美,但是当我在 jar 文件中构建它时,应用程序会忽略双击。我尝试在cmd行中运行它并收到下一个异常:


  Exception in Application start method

java.lang.reflect.InvocationTargetException

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

        at java.lang.reflect.Method.invoke(Unknown Source)

        at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)

        at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

        at java.lang.reflect.Method.invoke(Unknown Source)

        at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)

Caused by: java.lang.RuntimeException: Exception in Application start method

        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)

        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$154(LauncherImpl.java:182)

        at java.lang.Thread.run(Unknown Source)

Caused by: javafx.fxml.LoadException:

file:/C:/Users/__it/Desktop/Ilab%20API%20UI%20+%20CODE%20v%202.0/ApplicationExampleForClients%20V_1.0%20(CODE)/out/artifacts/ApplicationExampleForClients_V_1_0_jar/ApplicationExampleForClients%20V_1.0.jar!/Interface.fxml


我将一个库导入到项目中,当它仅在 java 1.8 中运行时,jar 应用程序已经运行,但是当我为所有 java 版本更新库时,导入到项目并运行它,收到了这个 Stack Trace。

不负相思意
浏览 169回答 2
2回答

富国沪深

它不起作用,因为您无法JAR从文件系统访问文件(这是 File API 所做的)文件:/C:/Users/__it/Desktop/Ilab%20API%20UI%20+%20CODE%20v%202.0/ApplicationExampleForClients%20V_1.0%20(CODE)/out/artifacts/ApplicationExampleForClients_V_1_0_jar/ApplicationExampleForClients%20V_1.0。罐子!/Interface.fxmlApplicationExampleForClients%20V_1.0.jar!表示您要访问 JAR 中的文件,并且由于您的文件系统无法直接访问它,因此这将不起作用。您应该使用资源来访问 JAR 中的项目特定材料。https://docs.oracle.com/javase/8/docs/technotes/guides/lang/resources.html#class所以你最终会得到类似的东西InputStream in=SomeClass.class.getResourceAsStream("Interface.fxml")

哔哔one

确保在构建/导出应用程序时将所有必需的 jar 文件添加到导出的 jar 文件中。有关于执行此操作的说明:将外部 jars (lib/*.jar) 添加到 IntelliJ IDEA 项目的正确方法
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java