黑马程序员技术交流社区
标题:
如何將java程序打包成双击可执行的jar包
[打印本页]
作者:
wata
时间:
2015-1-14 17:54
标题:
如何將java程序打包成双击可执行的jar包
本帖最后由 wata 于 2015-1-14 17:56 编辑
需求:將MyMenuTest.java文件打包成jar文件,使其双击可执行
注:MyMenuTest.java中的包名是:day22(即:package day22;)
---------------------------------------------------------------
//將MyMenuTest.java文件拷贝到桌面上
C:\Users\TaoWang\Desktop>javac -d . MyMenuTest.java //將MyMenuTest.java文件编译到当前路径下(.代表当前路径)
/*
在“C:\Users\TaoWang\Desktop”目录下建立一个1.txt文件
1.txt中写入的内容是:
*****************************
Main-Class: day22.MyMenuTest*
*
*****************************
注:1.txt文件中的信息是配置信息,告诉系统要首先执行的jar包中的day22.MyMenuTest
*/
C:\Users\TaoWang\Desktop>jar -cvfm my.jar 1.txt day22 //jar包名是my.jar,按照1.txt的配置信息,將day22包打包成jar包
---------------------------------------------------------------------
//將MyMenuTest.java文件拷贝到桌面上
C:\Users\TaoWang\Desktop>javac -d d:\ MyMenuTest.java //將MyMenuTest.java文件编译到d:\路径下
C:\Users\TaoWang\Desktop>d: //进入d盘路径
/*
在“C:\”目录下建立一个1.txt文件
1.txt中写入的内容是:
*****************************
Main-Class: day22.MyMenuTest*
*
*****************************
注:1.txt文件中的信息是配置信息,告诉系统要首先执行的jar包中的day22.MyMenuTest
*/
D:\>jar -cvfm my.jar 1.txt day22 //jar包名是my.jar,按照1.txt的配置信息,將day22包打包成jar包
复制代码
MyMenuTest.java文件:
package day22;
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;//菜单条目
private FileDialog openDia, saveDia;//文件对话框
private File file;
MyMenuTest(){
init();
}
public void init(){
//设置frame的基本属性
f = new Frame("我的文档编辑器(Frame)");
f.setBounds(300,100,650,600);
f.setLayout(new BorderLayout());//注意:如果不设置布局,那么默认的也是边界布局,所以该行代码也可以不写。
//创建frame中的组件
ta = new TextArea();
bar = new MenuBar();
fileMenu = new Menu("文件(Menu)");
openItem = new MenuItem("打开(MenuItem)");
saveItem = new MenuItem("保存(MenuItem)");
closeItem = new MenuItem("退出(MenuItem)");
openDia = new FileDialog(f, "我要打开", FileDialog.LOAD);
saveDia = new FileDialog(f, "我要保存", FileDialog.SAVE);
/*
* FileDialog构造函数讲解:
*
* FileDialog(Dialog parent, String title, int mode):
*
* parent - 对话框的所有者
* title - 对话框的标题
* mode - 对话框的模式,FileDialog.LOAD 或 FileDialog.SAVE
*/
//將组件添加到frame
f.add(ta);
bar.add(fileMenu);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(closeItem);
f.setMenuBar(bar);//注意:Frame中添加菜单栏用到的是Frame类中的setMenuBar方法
//调用frame的事件集
myEvent();
//设置frame可见
f.setVisible(true);
}
private void myEvent(){
//將TextArea的内容保存起来的事件
saveItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(file==null){//如果文件已经存在就直接將文件内容保存进去即可
//1,显示菜单对话框
saveDia.setVisible(true);
//2,通过FileDialog类的getDirectory和getFile方法获取文件的目录和文件名
String filePath = saveDia.getDirectory();
String fileName = saveDia.getFile();
//3,將TextArea的内容保存到文件里去
if(filePath==null || fileName==null){//如果文件没取出来
return;
}
file = new File(filePath, fileName);
}
/*
* 源是TextArea,目的是字符文件
*/
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);
//通过FileDialog类的getDirectory和getFile方法获取文件的目录和文件名
String filePath = openDia.getDirectory();
String fileName = openDia.getFile();
//將文件的内容打印到TextArea中
if(filePath==null || fileName==null){//如果文件没取出来
return;
}
ta.setText("");//再次打开另一个文件时候,將textArea的内容置为空
file = new File(filePath, fileName);
try {
/*
* 源是字符流文件file,目的是TextArea
*/
BufferedReader bufr = new BufferedReader(new FileReader(file));
String line = null;
while((line=bufr.readLine())!=null){
ta.append(line+"\t\n");
}
bufr.close();
} catch (IOException ex) {
throw new RuntimeException("读取失败");
}
}
});
//退出(MenuItem)的事件
closeItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
//frame的关闭事件
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public static void main(String[] args){
new MyMenuTest();
}
}
复制代码
注:MyMenuTest.java文件是GUI编程中程序
可执行的my.jar界面如下:
可执行的my.jar界面.JPG
(62.54 KB, 下载次数: 52)
下载附件
2015-1-14 17:53 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2