黑马程序员技术交流社区
标题: jar包双击执行的问题???? [打印本页]
作者: 彭波 时间: 2013-4-2 15:29
标题: jar包双击执行的问题????
本帖最后由 彭波 于 2013-4-3 16:57 编辑
- /*
- 重点不是代码问题,是在win7产生jar包双击怎么没有办法执行
- */
- package mymenu;
- import java.awt.*;
- import java.awt.event.*;
- import java.io.*;
- public class MyMenuTest
- {
- private Frame f;
- private TextArea ta;
- private MenuBar bar;
- private Menu fileMenu;
- private MenuItem openItem, saveItem, closeItem, subItem;
-
- private FileDialog openDia, saveDia;
- private File file;
- MyMenuTest()
- {
- init();
- }
-
- public void init()
- {
- f = new Frame("my window");
- f.setBounds(300, 100, 600, 500);
- //f.setLayout(new FlowLayout());
-
- bar = new MenuBar();
- ta = new TextArea();
-
- fileMenu = new Menu("文件");
-
- openItem = new MenuItem("打开");
- saveItem = new MenuItem("保存");
- closeItem = new MenuItem("退出");
-
- fileMenu.add(openItem);
- fileMenu.add(saveItem);
- fileMenu.add(closeItem);
- bar.add(fileMenu);
-
- f.setMenuBar(bar);
-
- openDia = new FileDialog(f, "我要打开", FileDialog.LOAD);
- saveDia = new FileDialog(f, "我要保存", FileDialog.SAVE);
-
- f.add(ta);
-
- myEvent();
-
- f.setVisible(true);
- }
- private void myEvent()
- {
- saveItem.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- if(file==null)
- {
- saveDia.setVisible(true);
-
- String dirPath = saveDia.getDirectory();
- String fileName = saveDia.getFile();
- if(dirPath==null || fileName==null)
- return;
- file = new File(dirPath, fileName);
- }
-
- try
- {
- BufferedWriter bufw = new BufferedWriter(new FileWriter(file));
-
- String text = ta.getText();
-
- bufw.write(text);
- //bufw.flush();
- bufw.close();
- }
- catch(IOException ex)
- {
- throw new RuntimeException();
- }
- }
- });
-
- openItem.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- openDia.setVisible(true);
- String dirPath = openDia.getDirectory();
- String fileName = openDia.getFile();
- //System.out.println(dirPath+"..."+fileName);
-
- if(dirPath==null || fileName==null)
- return;
-
- ta.setText("");
- file = new File(dirPath, fileName);
-
- try
- {
- BufferedReader bufr = new BufferedReader(new FileReader(file));
- String line = null;
-
- while((line=bufr.readLine()) != null)
- {
- ta.append(line+"\r\n");
- }
- bufr.close();
- }
- catch(IOException ex)
- {
- throw new RuntimeException("读取失败");
- }
-
-
- }
- });
-
-
- closeItem.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- System.exit(0);
- }
- });
-
- f.addWindowListener(new WindowAdapter()
- {
- public void windowClosing(WindowEvent e)
- {
- System.exit(0);
- }
- });
- }
-
- public static void main(String[] args)
- {
- new MyMenuTest();
- }
- }
复制代码 代码如上,第22天-14的内容,重点不是代码问题,是在win7产生jar包双击怎么没有办法执行
我的操作(和老师一样啊):(1)
----->把类文件放在在c盘myclass文件中
(2)在myclass文件夹中创建一个文件1.txt,写入:Main-Class: mymenu.MyMenuTest 结尾要回车
(3)
------->产生了
,可是这个文件双击执行不了啊?????????
还有一个问题是:毕老师在说过这个问题后又讲了个问题:工具----->文件夹选项 ----->文件类型----->(后面各种操作 是在winXP下演示),我是在win7中,试问,咋么
做这些操作啊,win7下没有这些选项啊???????
作者: 彭波 时间: 2013-4-2 21:02
这个地方截图能错了,不是这个问题,最后不是生成了一个my.jar的压缩文件了吗?我双击不是像老师那样
打开的是一个应用程序,而是其解压这个文件,
作者: 赵晓东 时间: 2013-4-2 21:48
也许是你JDK安装的问题吧,从新装一下JDK,从新设置一下Path,我的也是win7的,就没出现这种状况
作者: 赵晓东 时间: 2013-4-2 21:54
我的也是win7
-
QQ截图20130402214303.png
(44.91 KB, 下载次数: 16)
作者: 赵晓东 时间: 2013-4-2 22:08
看看你的文件关联有.jar吗?
-
QQ截图20130402220218.png
(79.69 KB, 下载次数: 17)
作者: 刘林虎 时间: 2013-4-2 23:03
我感觉你应该重新配置一下path路径
作者: 李尧 时间: 2013-4-3 09:24
卤煮,我也是win7,我当时遇到跟你一样的情况.我是这么解决滴.
编辑注册表:HKEY_CLASSES_ROOT\Applications\javaw.exe\shell\open\command,修改数据数值为"D:\Program Files\Java\jdk1.6.0_21\jre\bin\javaw.exe" -jar "%1"(只要在原来的数值下添加-jar即可,路径就是你自己的javaw.exe的路径)。
你可以试试
作者: 黄玉昆 时间: 2013-4-3 12:38
这个是我总结的:
jar文件必须在系统中注册,才能运行。注册方法如下:
A.对于XP系统:
a.打开任意对话框,在菜单栏点击工具按钮,选择文件夹选项
b.选择新建--->扩展名,将扩展名设置为jar,确定
c.选择高级,可更改图标,然后点击新建,命名为open,
d.在用于可执行应用程序中,点浏览,将jdk下的bin的整个文件路径添加进来,并在路径后添加-jar即可。
B.对于win7系统:
a.改变打开方式:右击.jar文件,点击打开方式,选择默认程序为jdk下bin中的javaw.exe应用程序。
b.修改关联程序的注册表:打开注册表(win+r),找到注册表路径\HKEY_CLASSES_ROOT\Aplications\javaw.exe\shell\open\command下的字符串值,右击点修改,将值改为:"C:\Program Files\Java\jre6\bin\javaw.exe" -jar "%1"其中-jar前的路径就是javaw.exe的路径。保存
c.双击即可执行jar程序,如果仍不能执行,则需下载最新版的jdk。
具体请看帖子:
http://bbs.itheima.com/forum.php?mod=viewthread&tid=39457&highlight=jar%E5%8C%85
作者: 黄玉昆 时间: 2013-4-3 12:39
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
作者: 彭波 时间: 2013-4-3 14:09
总结各位大神的答案,我找到了解决方案:安装jdk时,结束时会让安装jre,这个jre一定要安装,虽然jdk中已经包含了jre,但是此物非彼物,不然就会出现我这样的悲剧了,
谢谢各位,那个修改注册表的方法我还是没有搞明白,试问怎么找到注册表,详细点行不????
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |