我在 IntelliJ 中编写了一个跨越几个类的程序,当我在 IDE 中测试它时它运行良好。但是,每当我按照教程将项目制作成 .jar 可执行文件时,它就不会运行。
双击 out 文件夹中的文件时,该文件不会运行,并显示“无法启动 Java JAR 文件“projectName.jar”。
从终端打开它时,出现错误“无法找到或加载主类”。我使用了“$ java -jar projectName.jar”
我按照以下步骤操作:
- 打开项目结构、工件并单击 (+)。
- 在 JAR 下,来自具有依赖项的模块。
- 指向包含我的 main 方法的类,然后单击“确定”。
- 单击“应用”,然后单击“确定”退出。
- 然后我关闭项目结构并打开“构建”,然后打开“构建工件”...
- 然后我单击“构建”。
- 导航到 ~/IdeaProjects/projectName/out/artifacts/projectName_jar/projectName.jar
然后我尝试运行它,但它没有运行。我的项目既有 GUI,也可以从命令行运行。当我在终端中编译 main 方法时,它工作正常,但我需要一个 JAR 文件。我不确定我应该在问题中包含什么,因为我确信我的代码不相关。我也使用 Maven,不确定这是否相关。在构建 JAR 之前,我还应该做其他事情或添加到我的项目中吗?
这可能是在错误的位置创建清单的结果。
首先确保它在src/main/resources/META-INF/MANIFEST.MF
(Intellij 有时会错误地将其放在/src/main/java/META-INF/MANIFEST.MF
)
然后确保 jar 正在寻找 META-INFsrc目录不在 /java 或 /resources 中。这意味着:
When you set up File>Project Structure>Artifacts>+>JAR>From modules with dependencies... then your Directory for META-INF/MANIFEST.MF should end at src
. Example:
ONLY C:\Users\User\StudioProjects\Project\src\
NOT THE PREPOPULATED C:\Users\User\StudioProjects\Project\src\main\java
If your Project Structure jar is already set up change the Manifest File path to:
C:\Users\User\StudioProjects\Project\src\META-INF\MANIFEST.MF
INSTEAD OF C:\Users\User\StudioProjects\Project\src\main\java\META-INF\MANIFEST.MF
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)