为了账号安全,请及时绑定邮箱和手机立即绑定

可执行的 .jar 文件不运行

可执行的 .jar 文件不运行

不负相思意 2022-07-20 12:17:41
我的 .jar 文件有问题。当我在 IDEA 中运行它时它工作得非常完美,但是当我在 jar 文件中构建它时,应用程序会忽略双击。我尝试在cmd行中运行它并收到下一个异常:  Exception in Application start methodjava.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。
查看完整描述

2 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

它不起作用,因为您无法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.fxml

ApplicationExampleForClients%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")


查看完整回答
反对 回复 2022-07-20
?
哔哔one

TA贡献1854条经验 获得超8个赞

确保在构建/导出应用程序时将所有必需的 jar 文件添加到导出的 jar 文件中。有关于执行此操作的说明:将外部 jars (lib/*.jar) 添加到 IntelliJ IDEA 项目的正确方法


查看完整回答
反对 回复 2022-07-20
  • 2 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信