例。如何将以下程序打包成。可执行的jar文件。
程序源码如下。
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class HuaMiao extends JFrame
implements ActionListener{
GridLayout GridLayout1=new GridLayout(4,2);
JLabel JLabel1=new JLabel("时");
JLabel JLabel2=new JLabel("分");
JLabel JLabel3=new JLabel("秒");
JButton JButton1=new JButton("显示");
JTextField JTextField1=new JTextField(10);
JTextField JTextField2=new JTextField(10);
JTextField JTextField3=new JTextField(10);
JTextField JTextField4=new JTextField(20);
HuaMiao(){
super("化秒程序");
setSize(200,350);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().setLayout(GridLayout1);
this.getContentPane().add(JLabel1);
this.getContentPane().add(JTextField1);
this.getContentPane().add(JLabel2);
this.getContentPane().add(JTextField2);
this.getContentPane().add(JLabel3);
this.getContentPane().add(JTextField3);
this.getContentPane().add(JButton1);
this.getContentPane().add(JTextField4);
JButton1.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
String hour,fen,miao;
Object b=e.getSource();
if(b==JButton1){
hour=JTextField1.getText();
fen=JTextField2.getText();
miao=JTextField3.getText();
double hour1=Double.parseDouble(hour);
double fen1=Double.parseDouble(fen);
double miao1=Double.parseDouble(miao);
double a=hour1*3600+fen1*60+miao1;
Double b1=new Double(a);
JTextField4.setText(b1.toString());
}
}
public static void main(String [] args){
HuaMiao HuaMiao=new HuaMiao();
}
}
----------------解决方案--------------------------------------------------------
方法如下:(不会的搜索一下有关帖子)一般的application程序都可以:
-----------------------------------
把.class用jar工具打包成可执行程序:
-m 参数用来把指定的标明文件的标明信息写入jar文件中META-INF/MANIFEST.MF文件
标明信息头有很多,在此只介绍Main-Class标头,它用来指定jar文件中的可执行的入口
类(即类中有public static void main(String []args)方法)
首先讲一下标明文件的写法:
1.新建一个 main.txt 文件
2.在main.txt文件中写入:Main-Class:(空格)mainclass(即你想打包的主类名)(换行符)
3.保存文件(和.class同目录)
注意:
"(空格)"表示要在此处加空格符
"(换行符)"表示要在此处加换行符
mainclass只是类名 没有.class扩展名
最好严格按照格式
写好标明文件后,就可以进行打包了
命令行如下:
1.打包指定文件:
jar cmf mani.txt myjar.jar classname1 classname2...
或 jar cfm myjar.jar mani.txt classname1 classname2...
(m参数对应标明文件 f参数对应打包的jar文件)
2.打包所有类文件:
jar cmf mani.txt myjar.jar *.class
3.jar xf myjar.jar会在本目录下生成META-INF目录用写字版打开里面的MANIFEST.MF文件
加了行:
Main-Class: mainclass
OK!
好了 如果没有什么类路径错误或者需要加载其他一些安全策略文件,双击你的jar文件图标,程序就可
以执行了!
-----------------------------------------
----------------解决方案--------------------------------------------------------
我严格按照你的方法做的啊。可是怎么双击之后总是出现Could not find the main class.Program will exit.啊。怎么会找不到主类呢。
----------------解决方案--------------------------------------------------------
那肯定是你没有设了
----------------解决方案--------------------------------------------------------
注意mainclass 是指你的运行类
并且其他的类 要一同打包
----------------解决方案--------------------------------------------------------
如果你用了不是标准类库的类,还必须得加上一个
Class-Path: xxx.jar xxx1.jar xxx2.jar
这样的话,你就一定可以运行了
还有,如果你写的类在包里,那么它就必须得放在和包名一样的文件夹下面
----------------解决方案--------------------------------------------------------
我是把HuaMiao.java HuaMiao.class 都直接放在D盘下的。我刚学的,虽然版主说的很清楚了。可是我还是做不起来。麻烦版主把具体的做法一步一步列下来(就以这个HuaMiao.java程序为例),好让我这个小笨能够做好。非常谢谢了。。。。。
----------------解决方案--------------------------------------------------------
如果你是直接放在D:\下的就按下面的步骤:
1,在D:\ 新建HuaMiao.txt并在里面写入Main-Class:(空格)HuaMiao(回车)保存
2,打开CMD 返回D:\根目录 输入jar cmf HuaMiao.txt myjar.jar HuaMiao.class 回车
3,在输入jar cmf HuaMiao.txt myjar.jar *.class回车
4,在输入jar xf myjar.jar会在本目录下生成META-INF目录用写字版打开里面的MANIFEST.MF文件
加了行:
Main-Class: HuaMiao
就行了
不知道这样楼主明白了没有
----------------解决方案--------------------------------------------------------
楼猪 你编的程序看起来有点乱哦
----------------解决方案--------------------------------------------------------
鼓励大家改进别人程序..........
Sidney你可以在下面贴出你改进后的
----------------解决方案--------------------------------------------------------