我编写了一个程序,它跨越IntelliJ中的几个类,当我在IDE中测试它时,它运行正常。但是,每当我按照教程将项目转换为.jar可执行文件时,它都不会运行。
双击它时,out文件夹中的文件不会运行,并且“无法启动”Java JAR文件“projectName.jar”。
从终端打开时,出现错误“无法找到或加载主类”。我使用了“$ java -jar projectName.jar”
我按照以下步骤操作:
然后我会尝试运行它,但它不会运行。我的项目既有GUI又可以从命令行运行。当我在Terminal中编译main方法时,它工作正常,但我需要一个JAR文件。我不确定我应该在问题中包括什么,因为我确信我的代码是无关的。我也使用Maven,不确定是否相关。在构建JAR之前,还有其他事情我应该做或添加到我的项目中吗?
答案 0 :(得分:3)
这可能是因为Manifest在错误的地方被创建的结果。
首先确保它在src/main/resources/META-INF/MANIFEST.MF
(Intellij有时会错误地将其放入/src/main/java/META-INF/MANIFEST.MF
)
然后确保jar正在/ strong OR / resources中的 src 目录中寻找META-INF。这意味着:
设置文件> 项目结构> 工件> + > JAR > 来自具有依赖关系的模块... ,那么META-INF / MANIFEST.MF 的目录应该以{{1}}结束。例如:
src
如果已经设置了项目结构 jar,请将 Manifest File 路径更改为:
ONLY C:\Users\User\StudioProjects\Project\src\
NOT THE PREPOPULATED C:\Users\User\StudioProjects\Project\src\main\java
答案 1 :(得分:1)
您需要确保已设置Main-Class属性。检查这一点的一种方法是使用Zip实用程序打开Jar并查找META-MF/MANIFEST.MF
提取或使用记事本,记事本++或任何文档阅读器打开该文件。如果" Main-Class"如果您没有收到正确的主要课程,您将收到错误。看到IntelliJ教程,它在设置工件发布时有一个Main-Class字段。我已将下面的链接包含在IntelliJ页面中。