我正在MAC OS X 10.8.3上使用Intellij IDEA 12.0.4创建jar文件。
我去文件-
现在,如果我尝试使用以下命令运行jar:
java -jar path_to_jar/jar_file
我得到这个错误
在path\u to\u jar/jar\u文件中,没有主清单属性。$java-version(java)version“1.7.0\u 17”
java(TM)SE Runtime Environment(build 1.7.0\u 17-b02)
java HotSpot(TM)64位服务器VM(build 23.7-b01,混合模式)
任何提示,我做错了什么?
您需要为您的jar选择“main”类以使其可执行(即您应该在包含公共静态空main(String[]args)
的类上指向IDEA
在我的例子中,这是因为IntelliJ正在将所有依赖项提取到输出jar中,最终用我包含的依赖项之一覆盖了/META-INF/MANIFEST. MF
文件。
我必须打开jar并复制真实的清单。MF从“清单文件”属性中指定的位置,该属性在项目结构下的工件页面中自动设置”。
要解决此问题,请执行两项操作:
将META-INF移到src/main/resources
然后:文件-
选择工件,删除当前工件并创建一个新工件,但这次,不要选择“提取到目标jar”,而是选择“复制到输出目录并通过清单链接”
对于META-INF的路径,请将资源目录的路径放在您将META-INF复制到的目录上方。。
现在建造你的神器
im终端,转到已生成JAR的目录并运行do:
java-jar您的jar文件。罐子
玩得高兴
问题内容: 如何使用程序以编程方式创建JAR文件java.util.jar.JarOutputStream?我的程序生成的JAR文件看起来正确(提取得很好),但是当我尝试从中加载库时,Java抱怨说它找不到明显存储在其中的文件。如果我提取JAR文件并使用Sun的jar命令行工具对其进行重新压缩,则生成的库可以正常工作。简而言之,我的JAR文件有问题。 请说明如何以编程方式创建清单文件以及完整的JA
问题内容: 到目前为止,我已经通过Eclipse的“导出…”功能创建了可运行的JAR文件,但是现在我切换到IntelliJ IDEA和Gradle进行构建自动化。 这里的一些文章建议使用“应用程序”插件,但这并不能完全导致我期望的结果(只是JAR,没有启动脚本或类似的东西)。 如何通过Eclipse的“导出…”对话框获得相同的结果? 问题答案: 可执行jar文件只是清单中包含Main- Class
问题内容: 我正在尝试使用mac终端创建一个.jar文件,但是有点麻烦。我遵循了这里的步骤,但是没有成功。我收到此错误消息: 那么,您到底要怎么做呢?我的Java程序称为Main.java,我已将其编译为.class文件。现在我该怎么办? 谢谢 问题答案: 1)确保所有必需的文件都在目录中,您已打开终端/命令提示符并导航至该目录。 2)编译.java类,例如HelloWorld.java与 3)这
问题内容: 使用Maven 3.1 Eclipse Helios Aspekt: 尝试使用maven-jar / dependency-plugins创建可运行的jar文件。 问题: 创建jar文件和依赖项后,当我尝试使用命令启动jar文件时出现NoCLassDefFoundErrors 但是类/文件可以在./dependency-jars文件夹中找到???我还尝试了以下命令: 这也不起作用。 题
有人能告诉我如何用Intellij和Gradle在cmd中运行.jar文件吗? 我尝试创建清单文件,但出现错误: 或 我的主要类:
这里的一些文章建议使用“Application”插件,但这并不完全导致我预期的结果(只是一个JAR,没有启动脚本或诸如此类的东西)。 我如何才能获得与Eclipse使用“export...”相同的结果。对话?