bat中调用jar文件的两个问题

bat调用jar包的两个典型问题

一,工具介绍和打包过程

工具作用:使用smack.jar进行模拟登录。

使用方法:用bat调用工具。

开发过程:在eclipse环境下完成代码的开发和调试。生成jar包(在工程上右击=>选择Export=>选择JAR file,点击Next=>选择导出路径和名称,一直点击Next,直到完成),用bat调用生成的jar包(java -jar LoginTest.jar 123 123(注意命令中的空格))。

二,问题一:Failed to load Main-Class manifest attribute from mkNttEstTest.jar

程序运行的时候,总是需要一个入口,上述问题就是由于没有设置这个程序入口导致的。 可以将 jar 文件用 WinRAR 打开,展开 META-INF 文件夹,查看 MANIFEST.MF 文件,可以发现 Main-Class 未设置,这就是导致异常的原因所在。解决办法有两种。1 ,手动添加 :将 Main-Class: com.huawei.com.Test ( main 程序,程序入口 ) 加入 MANIFEST.MF 文件中。 2 ,自动添加:在用 eclipse 生成 jar 包过程的最后一步,选择相应的程序入口。如下图。

     选择自己程序的入口,点击Finish就OK了。再次用 WinRAR 打开 MANIFEST.MF 文件,发现选择入口程序后,在 MANIFEST.MF 文件中自动加入了 Main-Class: com.huawei.com.Test 这句话。效果当然也和第一种一样。

 

三,问题二,Exception in thread "main" java.lang.NoClassDefFoundError: org\jivesoftware\smack\ConnectionConfiguration

   

    开发这个工具要依赖smack.jar 包,打包的时候不能自动将其他依赖包自动包含进来 (不能确定有没有方法(^-^) ) ,所以,当程序运行的后,用到依赖包的内容时,就会报 NoClassDefFoundError 的错误。解决办法:与问题一的第一种解决办法相似,也是在 MANIFEST.MF 文件的最后加入下面的依赖关系即可: Class-Path: smack.jar ,各个包之间用空格隔开 ( 注意:记得将依赖包考到与自己生成 jar 包的相同目录下 )

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值