java - IntelliJ IDEA 创建的 JAR 文件不运行

标签 java intellij-idea jar

我在 IntelliJ 中编写了一个跨越几个类的程序,当我在 IDE 中测试它时它运行良好。但是,每当我按照教程将我的项目制作成 .jar 可执行文件时,它都不会运行。

out 文件夹中的文件在双击时不运行,提示“无法启动 Java JAR 文件“projectName.jar”。

从终端打开它时,出现错误“无法找到或加载主类”。我使用了“$ java -jar projectName.jar”

我遵循了这些步骤:

  1. 打开 Project Structure、Artifacts,然后点击 (+)。
  2. 在 JAR 下,来自具有依赖性的模块。
  3. 指向包含我的主要方法的类,然后单击“确定”。
  4. 点击应用和确定退出。
  5. 然后我关闭项目结构并打开 Build,然后打开 Build Artifacts...
  6. 然后单击构建。
  7. 导航到 ~/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/

相关文章:

android - 如何从 Android 应用程序运行 Flash

java - 导出到 jar 时如何包含 opencv native 库

java - 什么时候以及为什么我们必须实现 Comparable 接口(interface)?

intellij-idea - 如何阻止 IntelliJ 切换回项目代码样式?

intellij-idea - Intellij 模块依赖项导出选项

android - 如何同时清理多个android项目?

java - 线程 "main"com.typesafe.config.ConfigException$Missing 中出现异常

java - 按下 JButton 时分割字符串

java - Libgdx第一人称视角控制

java - 不使用存储过程检索多个结果集