我在 IntelliJ 中编写了一个跨越几个类的程序,当我在 IDE 中测试它时它运行良好。但是,每当我按照教程将我的项目制作成 .jar 可执行文件时,它都不会运行。
out 文件夹中的文件在双击时不运行,提示“无法启动 Java JAR 文件“projectName.jar”。
从终端打开它时,出现错误“无法找到或加载主类”。我使用了“$ java -jar projectName.jar”
我遵循了这些步骤:
- 打开 Project Structure、Artifacts,然后点击 (+)。
- 在 JAR 下,来自具有依赖性的模块。
- 指向包含我的主要方法的类,然后单击“确定”。
- 点击应用和确定退出。
- 然后我关闭项目结构并打开 Build,然后打开 Build Artifacts...
- 然后单击构建。
- 导航到 ~/IdeaProjects/projectName/out/artifacts/projectName_jar/projectName.jar
然后我会尝试运行它,但它没有运行。我的项目既有 GUI,也可以从命令行运行。当我在终端中编译主要方法时,它运行良好,但我需要一个 JAR 文件。我不确定我应该在问题中包括什么,因为我确定我的代码是不相关的。我也使用 Maven,不确定这是否相关。在构建 JAR 之前,是否还有其他事情我应该做或添加到我的项目中?
最佳答案
这可能是在错误的位置创建 list 的结果。
首先确保它在src/main/resources/META-INF/MANIFEST.MF
(Intellij 有时会错误地将它放在 /src/main/java/META-INF/MANIFEST.MF
中)
然后确保 jar 在 src 目录中查找 META-INF,而不是在/java 或/resources 中。这意味着:
当您设置文件项目结构工件+JAR>From modules with dependencies... 那么你的 META-INF/MANIFEST.MF 目录 应该在 src
结束。示例:
ONLY C:\Users\User\StudioProjects\Project\src\
NOT THE PREPOPULATED C:\Users\User\StudioProjects\Project\src\main\java
如果您的 Project Structure jar 已经设置好,请将 Manifest File 路径更改为:
C:\Users\User\StudioProjects\Project\src\META-INF\MANIFEST.MF
INSTEAD OF C:\Users\User\StudioProjects\Project\src\main\java\META-INF\MANIFEST.MF
关于java - IntelliJ IDEA 创建的 JAR 文件不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37276146/