如何运行使用intellij 12创建的jar文件

时间:2013-03-30 22:13:13

标签: java macos jar intellij-idea

我在MAC OS X 10.8.3上使用Intellij IDEA 12.0.4来创建一个jar文件。

我转到文件 - >项目结构 - >文物 - > + - > Jar - >来自具有依赖关系的模块 - >浏览后选择的主类 - >选择提取物到目标罐 - > META-INF目录自动填充 - >好的 - >申请 - >好的 - >构建 - >构建工件 - >构建

现在如果我尝试使用:

运行jar
java -jar path_to_jar/jar_file

我收到此错误

  

在path_to_jar / jar_file中没有主要清单属性   $ java -version
  java版“1.7.0_17”
  Java(TM)SE运行时环境(版本1.7.0_17-b02)
  Java HotSpot(TM)64位服务器VM(内置23.7-b01,混合模式)

任何指针,我做错了什么?

4 个答案:

答案 0 :(得分:17)

要解决此问题,请执行以下两项操作:

将META-INF移入src / main / resources

然后:file->打开模块设置

选择工件,删除当前工件并创建一个新工件,但这一次,选择“复制到输出目录并通过清单链接”,而不是选择“提取到目标jar”

对于META-INF的路径,将资源目录的路径放在您将META-INF复制到的位置之上。

现在构建你的工件

即时通讯终端,转到生产罐子的dir并运行:

java -jar yourjarfile.jar

玩得开心

答案 1 :(得分:5)

在我的情况下,这是因为IntelliJ正在将所有依赖项提取到输出jar中,最终用我所包含的依赖项之一覆盖了/META-INF/MANIFEST.MF文件。

我必须打开jar并从真实的MANIFEST.MF中复制“Manifest File”属性中指示的位置,该属性会自动在“项目结构”下的工件页面中设置。

答案 2 :(得分:0)

您需要为jar选择“main”类才能使其成为可执行文件(即您应该在包含public static void main(String[] args)

的类中指向IDEA

答案 3 :(得分:0)

就我而言,我选择  文件->项目结构->工件-> +-> Jar->从具有依赖性的模块中->浏览后选择主类->复制到输出目录并通过清单链接(提取到对我不起作用的目标Jar)->浏览/META-INF/MANIFEST.MF->确定->应用->确定->构建->构建工件->构建

后,选择项目资源文件夹

我的Idea版本是IntelliJ IDEA 2018.2(最终版本)I read from here。它对我有用。