我打包的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文件放到指定的路径下。
浙江启扬智能科技有限公司
2023-06-12 广告
2023-06-12 广告
不一定,ARM架构的嵌入式开发可以基于uc/os、Linux、Windows等操作系统,而不一定要使用LINUX操作系统。在ARM架构上,Windows和Linux都是可以使用的,而且许多嵌入式系统开发工具也都是支持这两种操作系统的。因此,...
点击进入详情页
本回答由浙江启扬智能科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |