jar包能在cmd打开但是不能双击打开

jar包能在cmd打开但是不能双击打开,第1张

双击运行与环境变量关系不大,是在jar打包时需要在文件MANIFESTMF中指定用于运行的主类,如:Main-Class: compbapistartupAPIInfo
在 Windows 下,我们还可以通过设置资源管理器的方式实现双击 jar 文件执行它。
首先打开资源管理器的文件夹选项,在“文件类型”中找到 jar 文件。如果找不到,也可以自己新建一个。
接着单击“高级”按钮,打开编辑文件类型对话框。在对话框中单击“新建”,打开新 *** 作对话框。
在 *** 作名称中填写“执行窗体程序”,然后单击下面的“浏览”,选择你的 JRE 下的 javawexe。选择完后,再在后面补上“ -jar "%1" % ”。
同样的,用类似的方式创建“执行命令行程序” *** 作。注意程序名是 javaexe。
将这两个 *** 作中的一个设为默认,这样你就可以双击打开 jar 文件了。
右键单击 jar 文件,你可以执行另外一个 *** 作。

不知道程序是否是自己写的,如果自己写的建议使用工具导出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文件放到指定的路径下。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存