java打包exe主启动类未找到_【maven】成功生成jar包,提示找不到主类?

问题描述:

使用maven构建zookeeper项目,完成一个简单的创建组的实例,代码调试完成,使用mvn clean install成功打包得到了jar包,但是在执行时发现使用java -cp target/XXX.jar com.App却提示“找不到或者无法加载主类”,用java -jar对jar包查看,提示“包中没有主清单属性”。

解决办法:

首先在网上查询了很多相关的问题,逐一进行了排查,包括环境变量的配置、CLASSPATH中有没有当前路径.、主类中有没有main函数、包名是否正确等等。

最后发现,环境配置都没有问题,并且只有当程序里使用到了第三方jar包时才会出现问题,如果只是一个简单的Hello World程序是可以正常运行的。在经过相关的测试以后,发现问题还是在pom文件上。

首先,对于pom文件中的每个依赖,scope的属性值要注意,它主要管理依赖的部署。目前可以使用5个值:

compile,缺省值,适用于所有阶段,会随着项目一起发布。

provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。

runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。

test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。

system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

其次,这里报错的主要原因是:pom.xml文件中没有加入mainclass的transformer,如下修改pom文件后,程序运行正确,可以把它作为一个模板运用到其他maven项目中。

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.hadoop.sgz

zkStudy

jar

1.0-SNAPSHOT

zkStudy

http://maven.apache.org

UTF-8

junit

junit

3.8.1

test

org.apache.zookeeper

zookeeper

3.5.4-beta

log4j

log4j

1.2.17

org.apache.maven.plugins

maven-shade-plugin

1.2.1

package

shade

com.hadoop.sgz.App

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值