java程序打包成可运行的jar文件,双击没反应

Lena-Yang 2013-09-02 04:32:24
我试了用eclipse打包成可执行的jar文件,或者在windows控制台用jar命令来做,
最终生成的jar包里确实有MANIFEST.MF文件,Main-Class: 写的也没问题

现象:
在windows控制台用java -jar xxx.jar 可以运行
但是双击没有反应
我右键jar包,看到关联的程序确实是javaw程序

在网上看大伙的方法,试了都不行

那我就不明白了。

...全文
6629 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
HongSeFaLaLi 2016-05-20
  • 打赏
  • 举报
回复
引用 7 楼 bbjiabcd 的回复:
.jar文件默认关联的是javaw,如果你打开的是控制台程序,那是因为控制台程序是不能用javaw打开的,javaw只能打开具有图形界面的Java程序。 如果你想双击打开,可以新建一个记事本文件,并将扩展名改为bat,然后右键-编辑,输入命令 java -jar xxx.jar 保存,双击这个bat文件即可运行xxx.jar。
原来如此!
bbjiabcd 2013-09-03
  • 打赏
  • 举报
回复
Sorry,刚才没看清楚你的注册表路径,应该是改 HKEY_CLASSES_ROOT\jarfile\shell\open\command 中的默认项,把路径中的javaw改成java即可,其他部分不变 例如:"C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %* 改为:"C:\Program Files\Java\jre7\bin\java.exe" -jar "%1" %*
bbjiabcd 2013-09-03
  • 打赏
  • 举报
回复
把注册表项中你编辑那个值中的"W"去掉,其他不变,就行
Lena-Yang 2013-09-03
  • 打赏
  • 举报
回复
引用 12 楼 okafor2011 的回复:
设定运行方式的时候,可以设置加参数 -jar


我去注册表里看了,javaw的command里,确确实实是加上了-jar "%1"
完整的 "C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

okafor2011 2013-09-03
  • 打赏
  • 举报
回复 1
设定运行方式的时候,可以设置加参数 -jar
Lena-Yang 2013-09-03
  • 打赏
  • 举报
回复
引用 7 楼 bbjiabcd 的回复:
.jar文件默认关联的是javaw,如果你打开的是控制台程序,那是因为控制台程序是不能用javaw打开的,javaw只能打开具有图形界面的Java程序。 如果你想双击打开,可以新建一个记事本文件,并将扩展名改为bat,然后右键-编辑,输入命令 java -jar xxx.jar 保存,双击这个bat文件即可运行xxx.jar。
如果想双击运行jar文件,不想通过bat文件运行,有办法吗?
Lena-Yang 2013-09-03
  • 打赏
  • 举报
回复
引用 9 楼 huntor 的回复:
>ftype jarfile jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %* >assoc .jar .jar=jarfile
看不懂,啥意思呀?
Lena-Yang 2013-09-03
  • 打赏
  • 举报
回复
引用 15 楼 bbjiabcd 的回复:
Sorry,刚才没看清楚你的注册表路径,应该是改 HKEY_CLASSES_ROOT\jarfile\shell\open\command 中的默认项,把路径中的javaw改成java即可,其他部分不变 例如:"C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %* 改为:"C:\Program Files\Java\jre7\bin\java.exe" -jar "%1" %*
这样做就好了。谢谢亲
  • 打赏
  • 举报
回复
修改注册表或者重装jdk
huntor 2013-09-02
  • 打赏
  • 举报
回复
>ftype jarfile jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %* >assoc .jar .jar=jarfile
linhu007 2013-09-02
  • 打赏
  • 举报
回复
你试一试: 用命令行编译java并生成可执行的jar包 如果想用java编写一个可视化小程序,碰巧手头没有IDE的话,可以用命令行来完成编译、打包等工作。 拿自己编写的“java记事本”为例,介绍一下这个过程: 1.编写源代码。 编写源文件:NotePad.java并保存,例如:E:\myApp\NotePad.java。程序结构如下: package test; import java.awt.*; import javax.swing.*; //更多包的导入... class NotePadFrame extends JFrame { //主界面的设计... } //其他相关代码... public class NotePad { public static void main(String[] args) { new NotePadFrame(); } } 2.打开终端。 打开系统菜单:“开始”->“运行...”->输入“cmd”,打开终端。 执行如下命令转到源文件所在目录: e: cd myApp 3.编译源文件。 输入如下命令进行编译: javac NotePad.java 执行成功之后,会在当前目录下生成一系列.class文件。 4.新建包文件夹。 输入如下命令新建包文件夹: mkdir test 也可在资源管理器新建此文件夹。 此文件夹必须与源文件中定义的包名完全一致(package test;)。 5.将类文件放到新的文件夹里。 在资源管理器里将编译生成的所有.class文件移动到新建的test文件夹。 6.测试程序是否可正常运行。 在E:\myApp路径下输入如下命令: java test.NotePad 如果可以正常运行程序,就可以进行下一步了。否则应检查上述步骤的正确性。 7.生成可执行的jar包。 在E:\myApp路径下输入如下命令: jar -cef test.NotePad NotePad.jar test 以上命令及参数的含义如下: jar命令为java自带的专用打包工具; c代表生成新的jar包; e代表可执行的类,亦即main方法所在的类。书写时要加上包名,在本例中是后面的test.NotePad; f代表生成的jar包的名称,在本例中是NotePad.jar。此包名可以随意命名,没有规定; test最后面的这个参数表示将test目录下的所有文件都打包放到新的jar包中。 8.测试jar包是否可正常运行。 在E:\myApp路径下输入如下命令: java -jar NotePad.jar 如果可以正常运行程序,则说明jar包制作成功。 如果已经将“Java(TM) Platform SE binary”关联到.jar文件类型(通过正常安装jdk后都会正确关联),还可以通过双击来执行此类jar包,其感受与exe文件相同。
bbjiabcd 2013-09-02
  • 打赏
  • 举报
回复
.jar文件默认关联的是javaw,如果你打开的是控制台程序,那是因为控制台程序是不能用javaw打开的,javaw只能打开具有图形界面的Java程序。 如果你想双击打开,可以新建一个记事本文件,并将扩展名改为bat,然后右键-编辑,输入命令 java -jar xxx.jar 保存,双击这个bat文件即可运行xxx.jar。
wufei151 2013-09-02
  • 打赏
  • 举报
回复
引用 3 楼 hardwin 的回复:
[quote=引用 2 楼 wufei151 的回复:] 右键切换打开方式,使用Java(TM) PlatForm SE binary 打开,希望能够帮助到你
确实是这样设置的[/quote] http://jingyan.baidu.com/article/200957617c3619cb0621b44d.html 看看这篇文章
yuck0419 2013-09-02
  • 打赏
  • 举报
回复
在CMD里运行: java jar包名字 看报错
Lena-Yang 2013-09-02
  • 打赏
  • 举报
回复
引用 1 楼 oLinHao007 的回复:
你用cmd将你的文件打包成jar文件试一试
试过好多次了。不行
Lena-Yang 2013-09-02
  • 打赏
  • 举报
回复
引用 2 楼 wufei151 的回复:
右键切换打开方式,使用Java(TM) PlatForm SE binary 打开,希望能够帮助到你
确实是这样设置的
wufei151 2013-09-02
  • 打赏
  • 举报
回复
右键切换打开方式,使用Java(TM) PlatForm SE binary 打开,希望能够帮助到你
linhu007 2013-09-02
  • 打赏
  • 举报
回复
你用cmd将你的文件打包成jar文件试一试

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧