java编译并打包成可执行jar和exe文件
先建立java文件如下所示:
RadioButtonFrame.java
在编译器中编译运行结果如下:
使用控制台命令编译RadioButtonFrame.java文件
javac RadioButtonFrame.java
获得编译后的类文件两个:RadioButtonFrame.class和RadioButtonFrame$1.class如下图:
打jar包
在命令行中打包成jar
jar -cvf RadioButton.jar RadioButtonFrame.class
然后把MANIFEST.MF、RadioButtonFrame.class和RadioButtonFrame$1.class三个文件一起打包成jar使用命令
jar cvfm RadioButton.jar MANIFEST.MF RadioButtonFrame.class RadioButtonFrame$1.class
如图:
这个RadioButton.jar文件是可以运行的。使用命令行运行如下:
现在完成了jar可执行文件。
下面将jar文件转成exe文件:
使用exe4j工具转换。
上图输入名字和输入位置,点下一步
输入exe的名字,再下一步
选择我们刚才生成的可执行的RadioButton.jar文件
在选择主类,因为我们的java类中只有一个主类,所有只显示出来一个。下一步
完成。
这是生成的exe和运行结果。
先建立java文件如下所示:
RadioButtonFrame.java
import javax.swing.*; import javax.swing.border.Border; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** * Created by IBM on 2017/9/21. */ public class RadioButtonFrame extends JFrame{ private JPanel buttonPanel; private ButtonGroup group; private JLabel label; private static final int DEFAULT_SIZE=36; public static void main(String[]args){ RadioButtonFrame buttonFrame=new RadioButtonFrame(); buttonFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); buttonFrame.setVisible(true); } public RadioButtonFrame(){ label=new JLabel("The quick brown fox jumps over the lazy dog."); label.setFont(new Font("Serif", Font.PLAIN,DEFAULT_SIZE)); add(label,BorderLayout.CENTER); buttonPanel=new JPanel(); group=new ButtonGroup(); addRadioButton("Small",8); addRadioButton("Medium",12); addRadioButton("Large",18); addRadioButton("Extra large",36); Border etched=BorderFactory.createEtchedBorder(); Border titled=BorderFactory.createTitledBorder(etched,"border types"); buttonPanel.setBorder(titled); add(buttonPanel,BorderLayout.SOUTH); pack(); } public void addRadioButton(String name,final int size){ boolean selected=size==DEFAULT_SIZE; JRadioButton button=new JRadioButton(name,selected); group.add(button); buttonPanel.add(button); ActionListener listener=new ActionListener() { @Override public void actionPerformed(ActionEvent e) { label.setFont(new Font("Serif",Font.PLAIN,size)); } }; button.addActionListener(listener); } }
在编译器中编译运行结果如下:
使用控制台命令编译RadioButtonFrame.java文件
javac RadioButtonFrame.java
获得编译后的类文件两个:RadioButtonFrame.class和RadioButtonFrame$1.class如下图:
打jar包
在命令行中打包成jar
jar -cvf RadioButton.jar RadioButtonFrame.class
生成RadioButton.jar文件,这个文件是不可执行的,因为里面的MANIFEST.MF文件没有主类。如同:
用解压软件解压RadioButton.jar,找到MANIFEST.MF文件用记事本打开,内容如下:
修改里面的内容添加:Main-Class:RadioButtonFrame为我们上面建立的java类的类名。Created-By: 1.8.0_121 (Oracle Corporation)把冒号后面的修改一下如:Created-By: RadioButton。如图:
然后把MANIFEST.MF、RadioButtonFrame.class和RadioButtonFrame$1.class三个文件一起打包成jar使用命令
jar cvfm RadioButton.jar MANIFEST.MF RadioButtonFrame.class RadioButtonFrame$1.class
如图:
这个RadioButton.jar文件是可以运行的。使用命令行运行如下:
现在完成了jar可执行文件。
下面将jar文件转成exe文件:
使用exe4j工具转换。
上图输入名字和输入位置,点下一步
输入exe的名字,再下一步
选择我们刚才生成的可执行的RadioButton.jar文件
在选择主类,因为我们的java类中只有一个主类,所有只显示出来一个。下一步
完成。
这是生成的exe和运行结果。