在Intellij中通过Project Structure - Artifacts打jar包,每次java -jar运行时候总是提示没有主清单属性。查看Manifest.mf文件里面确实没有Main-Class.
但是我在打jar包的时候已经指定了MainClass了。
请问有什么方法能够不用手动添加MainClass属性呢? 谢谢
在Intellij中通过Project Structure - Artifacts打jar包,每次java -jar运行时候总是提示没有主清单属性。查看Manifest.mf文件里面确实没有Main-Class.
但是我在打jar包的时候已经指定了MainClass了。
请问有什么方法能够不用手动添加MainClass属性呢? 谢谢
可能是 IntelliJ 的问题。
在 Project Structure - Artifacts 里面选好 Main Class 之后,IntelliJ 会自动在下边的 Directory for META-INF/MANIFEST.MF 里填上 /$PROJECT_DIR/src/main/java
把这行里边的 main/java
删掉,变成 /$PROJECT_DIR/src/
试试
如果项目中引用的Jar包有签名过,最后打包成的Jar包运行时会抛出错误:
“java.lang.SecurityException: Invalid signature file digest for Manifest main attributes”
坑: 自动填充 /$PROJECT_DIR/src/main/java
亲测好使: 把这行里边的 main/java 删掉,变成 /$PROJECT_DIR/src/ 试试
多谢?
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
用maven打包