[Java][Build]Idea打包java,入口main

最近通过一个简单的demo验证一个问题,打包的时候遇到了一些问题,比如依赖的jar包找不到,入口的类找不到等待,尝试了网上的各种方法,最后通过下面的步骤成功了。

删除工程的临时目录classes和target,删除META-INF文件夹

File->Project Structure->Artifacts
点击+号,选择JAR->from modules with dependencies
不要填写Main class(我的demo里面有多个main所以没有填写Main class),默认选择extract to the target JAR(这样会把被依赖的jar包打包到一起)
点击OK(如果弹出错误已经存在MANIFEST.MF,就把META-INF文件夹删除,重复上面的步骤)

Build->Build Artifacts->Build
在classes文件夹下面生成了对应的jar
删除jar包里面META-INF文件夹里面除了.MF和.RSA的文件,即只保留.MF和.RSA文件,否则会报错1)
通过java -cp xxx.jar 类路径.类名执行

过程中遇到的一些报错

1)找不到或无法加载主类 xx.xx.xx
2)
Error: A JNI error has occurred, please check your installation and try again
Exception in thread “main” java.lang.NoClassDefFoundError:
3)签名问题报错
Error: A JNI error has occurred, please check your installation and try again
Exception in thread “main” java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:284)
at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:238)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值