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

Java 如何运行使用intellij 12创建的jar文件,java,macos,jar,intellij-idea,Java,Macos,Jar,Intellij Idea,我正在MAC OS X 10.8.3上使用Intellij IDEA 12.0.4创建jar文件 我进入文件->项目结构->工件->+->Jar->从具有依赖项的模块->浏览后选择的主类->选择的提取到目标Jar->META-INF目录自动填充->确定->应用->确定->构建->构建工件->构建 现在,如果我尝试使用以下命令运行jar: java -jar path_to_jar/jar_file 我得到这个错误 路径\u到\u jar/jar\u文件中没有主清单属性 $java-版本 jav

我正在MAC OS X 10.8.3上使用Intellij IDEA 12.0.4创建jar文件

我进入文件->项目结构->工件->+->Jar->从具有依赖项的模块->浏览后选择的主类->选择的提取到目标Jar->META-INF目录自动填充->确定->应用->确定->构建->构建工件->构建

现在,如果我尝试使用以下命令运行jar:

java -jar path_to_jar/jar_file
我得到这个错误

路径\u到\u jar/jar\u文件中没有主清单属性
$java-版本
java版本“1.7.0_17”
Java(TM)SE运行时环境(build 1.7.0_17-b02)
Java HotSpot(TM)64位服务器虚拟机(构建23.7-b01,混合模式)


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

您需要为您的jar选择“main”类以使其可执行(即,您应该在包含
public static void main(String[]args)的类上指出IDEA)

在我的例子中,这是因为IntelliJ正在将所有依赖项提取到输出jar中,结果用我包含的依赖项之一的内容覆盖了
/META-INF/MANIFEST.MF
文件


我必须打开jar并从项目结构下的工件页面中自动设置的“MANIFEST File”属性中指定的位置复制real
MANIFEST.MF

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

将META-INF移入src/main/resources

然后:文件->打开模块设置

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

对于META-INF的路径,请将资源目录的路径放在复制META-INF的路径上方

现在构建您的工件

im终端,转到已生成JAR的目录并运行do:

java-jar yourjarfile.jar

玩得开心

就我而言,我选择 文件->项目结构->工件->+->Jar->来自具有依赖项的模块->浏览后选择的主类->复制到输出目录并通过清单链接(提取到目标Jar不适用于我)->在浏览/META-INF/MANIFEST.MF->OK->Apply->OK->Build->Build Artifacts->Build之后选择您的项目资源文件夹


我的想法版本是IntelliJ Idea 2018.2(最终版本)。这对我来说很有用。

看看类似的问题,我这样做了:在浏览之后选择了主类。虽然这可能会起作用,但最好不要在生成后打开JAR并对其进行破解?我按照Felbus的指示为我修复了它,而不必在2017年4月左右对JAR进行破解,这仍然解决了问题我的解决方案,干得好,先生