【发布时间】:2020-02-19 15:12:39
【问题描述】:
我使用 IntelliJ 构建了一个 javaFX 工件。我的第一个问题是在应用程序类框中,当我在搜索框中搜索时,它没有自动检测到我的主类,甚至没有建议任何类作为主类。我看到这是 IntelliJ 的一个错误,在 StackOverflow 上的某个地方,我只是手动输入了我的 packageName.Main in the application class box.
我有两个依赖项被提取到这个output root. 中构建工件的输出看起来像this.
然后在重建项目后,JAR 在我的 PC 上运行 100%,即使我将 JAR 移动到另一个目录,它也可以 100% 运行。
所以我把这个 JAR (Swansong.jar) 复制到了我的另一台电脑上,当我双击它时,什么也没发生。当我在cmd中运行它时:
java -jar Swansong.jar我收到了这个错误:
Error: Could not find or load main class swansong.Main
Caused by: java.lang.ClassNotFoundException: swansong.Main
我阅读了有关清单文件的信息,但在我的项目中的任何地方都找不到清单文件,但是如果我提取 JAR 文件,生成的清单文件看起来像 this。谁能帮助我,为什么 JAR 可以在一台 PC 上运行,而不能在另一台 PC 上运行?我该如何解决这个问题?
更新: This是我的jar文件的内容,this是jar文件里面swansong目录的内容。
更新 2: 我觉得我好笨。我的主 PC 运行 jdk8,而我的另一台 PC 运行 jdk11。并且 JavaFX 不包含在 jdk11 中。所以我认为这是问题所在,但还不能 100% 确定。将测试并查看。有什么解决方法吗?
【问题讨论】:
-
尝试从
swansong的父文件夹运行java-jar swansong.Swansong.jar -
如果您的 jar 中没有清单文件,它也不会在您的第一台电脑上运行。您是先在 IDE 中运行它,现在才通过单击它来运行它吗?
-
@Eugen 我只是将JAR文件复制到另一台PC,所以目录结构如下:/Downloads/Swansong.jar
-
@Stultuske 我在我的 IDE 上运行它,工作,然后只需双击 jar 文件,也工作。只有当复制到其他电脑时它不起作用。我注意到 jar 中有一个清单文件,正如您在我的上一个屏幕截图中看到的那样
-
@Stultuske 我的项目结构(在 IDE 中)中没有清单文件,但 jar 中有一个
标签: java intellij-idea javafx jar executable-jar