运行java jar – 没有主清单属性错误
我创建了简单的java程序(maven with pom)当我用CMD运行一些命令时它应该在给定的路径下创建一个文件…我做mvn clean install
哪个成功完成,现在我想用这个创建的jar来自命令行如下:
java -jar "/Users/i012/IdeaProjects/myproj/target/test.rts-1.0-SNAPSHOT.jar" path2genfile2create
哪个应该运行我的程序(这是我第一次尝试这样的东西…)
但我得到的错误是:
no main manifest attribute, in /Users/i012/IdeaProjects/myproj/target/test.rts-1.0-SNAPSHOT.jar
这里可能缺少什么? 哪个显示属性 ?
错误不是来自我创建的类 ……
我创建了一些META-INF / MANIFEST.MF没有帮助,但可能是错的
如果您使用的是Maven组件插件,或者您的IDE工具是,那么您需要一个mainClass
元素。 这是我用的:
maven-assembly-plugin com.foo.MyMainClass jar-with-dependencies make-assembly package single
清单是jar中路径META-INF / MANIFEST.MF中的文件,它定义了类路径和运行jar文件的主类等属性。
基本结构如下:
Manifest-Version: 1.0 Created-By: 1.7.0_06 (Oracle Corporation)
您可以通过添加属性Main-Class: classname
来定义入口点。
为了使用给定的清单创建jar文件,您可以:
- 使用IDE将清单添加到它生成的jar中。
- 使用
jar cfm MyJar.jar Manifest.txt MyPackage/*.class
这样的命令手动创建一个包含给定清单和类的jar。 - 手动解压缩jar,添加清单,然后再次压缩它。 压缩工具通常可以通过拖放操作来完成此操作。
您可以在此处找到有关jar清单文件的更多信息。
在我的情况下,我使用的是spring-boot,但我没有在我的pom中提到我的构建器,所以我修复了它:
org.springframework.boot spring-boot-maven-plugin