gpt4 book ai didi

java - 为什么我的胖 JAR 不能在不同的 PC 上运行 - 找不到主类?

转载 作者:行者123 更新时间:2023-11-29 09:26:31 24 4
gpt4 key购买 nike

我使用 IntelliJ 构建了一个 javaFX 工件。我的第一个问题是在“应用程序类”框中,当我在搜索框中搜索时,它不会自动检测到我的主类,甚至不会建议任何类作为主类。我看到这是 IntelliJ 的一个错误,在 StackOverflow 的某个地方,我只是手动输入了我的 packageName.Main in the application class box.

我将两个依赖项提取到此 output root. 中构建工件的输出看起来像 this.

然后在重建项目后,JAR 在我的 PC 上 100% 运行,即使我将 JAR 移动到另一个目录,它也 100% 运行。

所以我将这个 JAR (Swansong.jar) 复制到我的另一台 PC 上,当我双击它时,没有任何反应。当我在 cmd 中运行它时:java -jar Swansong.jar 我得到这个错误:

Error: Could not find or load main class swansong.Main
Caused by: java.lang.ClassNotFoundException: swansong.Main

我阅读了有关 list 文件的信息,但在我的项目中的任何地方都找不到 list 文件,但如果我提取 JAR 文件,生成的 list 文件看起来像 this .任何人都可以帮助我,为什么 JAR 在一台 PC 上运行,但不能在另一台 PC 上运行?我该如何解决这个问题?

更新: This是我的 jar 文件和 this 的内容是jar文件里面的swansong目录的内容。

更新 2:我觉得我好笨。我的主 PC 运行 jdk8,我的另一台 PC 运行 jdk11。并且 JavaFX 不包含在 jdk11 中。所以我认为这是问题所在,但还不能 100% 确定。将测试并查看。是否有任何解决方法?

最佳答案

我不想承认,但问题的解决方案一直盯着我看,我真的很尴尬。我使用 Java 8 开发程序。目标 PC 使用的是 Java 11,我从没想过要检查 JDK 版本,因为我以为我在两台 PC 上都使用 JDK8。

JavaFX 包含在 JDK8 中,但不包含在 JDK11 中。使用较新的 JDK 版本时,应将其作为外部库添加到项目中。我只是使用 JDK8 来运行程序,一切正常 100%。不过,感谢您的回答和评论,我学到了很多关于 list 和类路径的知识,试图解决这个问题,所以我的努力​​没有白费!

关于java - 为什么我的胖 JAR 不能在不同的 PC 上运行 - 找不到主类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58521716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com