运行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文件,您可以:

  1. 使用IDE将清单添加到它生成的jar中。
  2. 使用jar cfm MyJar.jar Manifest.txt MyPackage/*.class这样的命令手动创建一个包含给定清单和类的jar。
  3. 手动解压缩jar,添加清单,然后再次压缩它。 压缩工具通常可以通过拖放操作来完成此操作。

您可以在此处找到有关jar清单文件的更多信息。

在我的情况下,我使用的是spring-boot,但我没有在我的pom中提到我的构建器,所以我修复了它:

    org.springframework.boot spring-boot-maven-plugin