为什么我的胖子JAR无法在其他PC上运行-找不到主类?

问题描述 投票:1回答:1

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

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

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

因此,我将此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

我阅读了清单文件,但是在项目的任何地方都找不到清单文件,但是如果我提取JAR文件,则生成的清单文件看起来像this。谁能帮我,为什么JAR在一台PC上却不能在另一台PC上运行?我该如何解决?

java intellij-idea javafx jar executable-jar
1个回答
0
投票

任何可执行的jar文件都需要具有指向主类的清单文件。

-JAR File
 \---META-INF
   \--MANIFEST.MF

在MANIFEST.MF中,您应该这样介绍主类:

Main-Class: com.mycompany.MainClass

[com.mycompany.MainClass应替换为适当的路径(您的主类的完全限定名称)]

© www.soinside.com 2019 - 2024. All rights reserved.