我打包的jar文件(用Java编写的)为什么在我的电脑上不可以双击运行,而在其他电脑上可以运行?
1个回答
展开全部
辛辛苦苦写了个java的DES字符加解密程序,准备送给朋友的,做完导出成JAR文件,却发现不能运行。Could not find the main class:Mycipher.jar Program will exit.郁闷大了,之前做个很多的jar文件都能运行的,这次确不行,上网搜了搜,问的一大堆,却没真正解决问题的原因,决定自己动手了。
程序再Eclipse中能运行,程序肯定没有问题,用Eclipse的向导导出应该也不会有问题,唉,直接执行不了,到cmd试一下,java -jar MyCipher.jar,报错了,一看错误,是某个类找不到,这个类是我应用的jar文件里的,这让我想到了jvm的类装载机制,一定是类装载器在当前路径里找不到我引入的jar文件里的类。终于让我发现的问题的真正原因。
解决办法:
1.把lib目录里的jar文件一一解压,把解压后的类文件连同目录添加到Mycipher.JAR文件中,很easy的搞定。
2.修改MANIFEST.MF文件的Class-Path属性的值(目录路径用/或者.代替,jar之间用空格分开)如:Class-Path: ../lib/miglayout-3.5.5.jar ../lib/TableLayout.jar ../lib/swing-layout-1.0.jar,同时把用到的jar文件放到指定的路径下。
程序再Eclipse中能运行,程序肯定没有问题,用Eclipse的向导导出应该也不会有问题,唉,直接执行不了,到cmd试一下,java -jar MyCipher.jar,报错了,一看错误,是某个类找不到,这个类是我应用的jar文件里的,这让我想到了jvm的类装载机制,一定是类装载器在当前路径里找不到我引入的jar文件里的类。终于让我发现的问题的真正原因。
解决办法:
1.把lib目录里的jar文件一一解压,把解压后的类文件连同目录添加到Mycipher.JAR文件中,很easy的搞定。
2.修改MANIFEST.MF文件的Class-Path属性的值(目录路径用/或者.代替,jar之间用空格分开)如:Class-Path: ../lib/miglayout-3.5.5.jar ../lib/TableLayout.jar ../lib/swing-layout-1.0.jar,同时把用到的jar文件放到指定的路径下。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询