java生成jar压缩包并运行
原帖:
http://ankye1234.blog.163.com/blog/static/9648289200691201534457/
这几天闲着没事,把一个java程序打包,听朋友说java生成可执行文件很难,自己写的程序只能在编译工具中运行,发布不了,还难不成让别人跟你一样输入命令操作.好了,现在实战开始,让我们一步一步的把它做成可执行文件.
程序源代码:(是java核心技术卷一的一个源程序,我们就拿它做示范)
import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; public class ImageViewer { public static void main(String[] args) { JFrame frame=new ImageViewerFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); } } class ImageViewerFrame extends JFrame { public ImageViewerFrame() { setTitle("ImageViewer"); setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT); label=new JLabel(); Container contentPane=getContentPane(); contentPane.add(label); chooser =new JFileChooser(); chooser.setCurrentDirectory(new File(".")); JMenuBar menubar =new JMenuBar(); setJMenuBar(menubar); JMenu menu=new JMenu("File"); menubar.add(menu); JMenuItem openItem =new JMenuItem("Open"); menu.add(openItem); openItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { int r=chooser.showOpenDialog(null); if(r==JFileChooser.APPROVE_OPTION) { String label.setIcon(new ImageIcon(name)); } } }); JMenuItem exitItem =new JMenuItem("Exit"); menu.add(exitItem); exitItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { System.exit(0); } }); } private JLabel label; private JFileChooser chooser; private static final int DEFAULT_WIDTH=300; private static final int DEFAULT_HEIGHT=400; }
编译后有四个文件
ImageViewer.class
ImageViewerFrame$1.class
ImageViewerFrame$2.class
ImageViewerFrame.class
现在我们来生成jar文件
写个批处理简单点^_^
jar cvf Image.jar ImageViewer.class ImageViewerFrame$1.class ImageViewerFrame$2.class ImageViewerFrame.class
把这个新建一个记事本文件保存成Image.bat后缀
运行这个Image.jar
打开Image.jar 在目录META-INF文件夹下修改MANIFEST.MF
添加Main-Class: Image(注意空格,在冒号后有一个空格)
保存修改,ok
咱们再新建一个start.bat输入代码:
java -jar Image.jar
现在你双击start.bat,是不是程序可以运行了,你现在可以把start.bat和Image.jar发给你的朋友,他们也可以分享你的程序了.
over!