java代码打成jar包后,不能运行?怎么回事

java代码打成jar包后,不能运行?怎么回事,第1张

在命令行中打包是没有指定main函数在的文件的,在需要打包的项目目录下建立manifestmf文件 格式如下
Manifest-Version: 10
Main-Class: zZ
Created-By: train
其中main-class设置主函数,例如我这里的zZ
若有引用的jar包,需要在新建Class-Path属性,然后写明
切记每个冒号后面需要有一个空格,否则会报ioexception
然后按照之前的提示执行
jar cvfm xxjar manifestmf
即可
执行jar文件用java -jar xjar

不知道程序是否是自己写的,如果自己写的建议使用工具导出jar包。因为按工具步骤你可以设置主方法,不然你要在jar包自己重新设置过主方法。
打开jar(用RAR打开),里面有一个MANIFESTMF的文件,打开,找到Main-Class这一行,再后面写上你的class文件,然后按回车(很重要),保存

辛辛苦苦写了个java的DES字符加解密程序,准备送给朋友的,做完导出成JAR文件,却发现不能运行。Could not find the main class:Mycipherjar Program will exit郁闷大了,之前做个很多的jar文件都能运行的,这次确不行,上网搜了搜,问的一大堆,却没真正解决问题的原因,决定自己动手了。
程序再Eclipse中能运行,程序肯定没有问题,用Eclipse的向导导出应该也不会有问题,唉,直接执行不了,到cmd试一下,java -jar MyCipherjar,报错了,一看错误,是某个类找不到,这个类是我应用的jar文件里的,这让我想到了jvm的类装载机制,一定是类装载器在当前路径里找不到我引入的jar文件里的类。终于让我发现的问题的真正原因。
解决办法:
1把lib目录里的jar文件一一解压,把解压后的类文件连同目录添加到MycipherJAR文件中,很easy的搞定。
2修改MANIFESTMF文件的Class-Path属性的值(目录路径用/或者代替,jar之间用空格分开)如:Class-Path: /lib/miglayout-355jar /lib/TableLayoutjar /lib/swing-layout-10jar,同时把用到的jar文件放到指定的路径下。谢谢采纳

你没进到
“d:\java”里去
你先进入d盘
,命令是“d:”回车
然后在进入你想进入的文件夹
再执行java文件
-------------------------------------


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13406033.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-30
下一篇 2023-07-30

发表评论

登录后才能评论

评论列表(0条)

保存