详解jar命令打包生成双击即可运行的Java程序
来源:互联网 发布:淘宝聊天工具下载 编辑:程序博客网 时间:2024/04/30 11:12
之前有同学问我怎样把自己的程序做得像Windows下的.exe文件那样直接双击就可运行,因为大家都厌烦了Java在控制台下的“javac”再“java”的操作方法。现在我就拿出当时给班里的同学写的实验指导来实现一下吧。大家互相学习。
平时我们写了Java程序,每次都要在命令行提示符的控制台下进行编译、运行,而且只是在本机上进行的。如果我们想要把自己开发的一些小游戏之类的程序打包发给好友们互相学习,那就需要用到“jar”命令来打包生成双击就可运行的程序包了。当然,前提是对方的机器已经安装了合适版本的JDK。
话不多说,直接用例子来说明问题吧。具体操作流程如下:
1、编写一个GUI程序(其他程序也可,只不过不够直观而已);
2、编写名为“manifest”的文件;
3、在控制台中使用“jar”命令按照指定的方式进行代码打包;
4、双击生成的“jar”包,即可运行我们的GUI程序了;
5、若上面第四步的方法不奏效,那么就应该编写Windows下后缀名为“.bat”的批处理文件,再双击该.bat文件即可;
首先,我们先在控制台下查看一下“jar”命令的用法,就会比较清楚上面第2、3步骤的原理和操作了。在控制台中输入“jar”命令,结果如下:
大家也动手试一下,有比较清楚的实例可以看。
实验开始:
1、假设我们编写的GUI程序代码如下,类名为Week_9.java,必须包含main()函数:
- import javax.swing.JFrame ;
- public class Week_9{
- public static void main(String args[]){
- JFrame frame = new JFrame("Java表格") ;
- String[] titles = {"姓名","年龄","性别"} ; //表格标题
- Object [][] userInfo = {
- {"小强",30,"男"} ,
- {"小明",23,"女"}
- } ; // 初始化数据
- JTable table = new JTable(userInfo,titles) ; // 建立表格
- JScrollPane scr = new JScrollPane(table) ; //用可滚动的JScrollPanel来包装JTable
- frame.add(scr); //将JScrollPanel添加进窗口中
- frame.setSize(400, 200);
- frame.setLocation(300, 50);
- frame.setVisible(true);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
代码就不具体讲明了,因为我们可以用其他包含有public类,并且里面有main()函数的Java程序来演示“jar”命令的打包用法,当我们直接在控制台下先“javac”再“java”的话,运行结果如下:
2、进入到编译后生成Week_9.class 文件所在的目录,新建一个名为“manifest”的文件(可以不用后缀名,用EditPlus可以打开,或者直接命名为manifest.txt也可,下面运用jar 命令打包时需要用到该文件,所以前后的文件名必须一致),如下图:
注:该文件里面的内容:Main-Class: Week_9,其中冒号“:”与类名之间一定要有个空格,这是Java规范,照做就行了。若public类属于某一包,则写:Main-Class: 包名.Week_9
3、根据步骤2中了解到的jar 命令的相关参数,在命令提示符窗口中执行以下命令:“jar -cvfm week9.jar manifest Week_9.class”,结果如下:可知当前目录下生成了“week9.jar”压缩文件,如图:
4、此时,就可以将打包后“week9.jar”文件发布给任何安装了Java运行时环境jre 的计算机了,若在我们机器上双击该文件的图标不能运行该文件,可以为Windows系统下的计算机再新建一个名为“week.bat”(文件名可随意)的批处理文件,内容为“java –jar week9.jar”,具体如下图:
5、最后,需要将“week9.jar”、 “week.bat”放在同一个目录下(如果不想放在同一目录下,那么.bat文件里面的在写java命令时就应该给出具体要运行的java类的路径了),然后双击“week.bat”文件即可运行该GUI程序了,运行结果与上面的一样。
至此,大家就可以把自己的程序打包发布给朋友们了。
附:本例子的源代码下载!
大家可以继续如下操作,稍微探索一下:
1、用解压工具打开“week9.jar”文件,看看里面包含了什么内容;
其实,上面第2个步骤中在一个名为“manifest”文件中写入了“Main-Class: Week_9”是代表这个jar打包文件中运行程序的主类(一定是public的),因为主类中包含程序入口main()函数。
2、实际上.bat 批处理文件里面的命令就相当于我们平时在命令提示符窗口下输入运行某个程序时输入的一样,请自行搜索批处理文件的相关知识。
- 详解jar命令打包生成双击即可运行的Java程序
- 详解jar命令打包生成双击即可运行的Java程序
- 详解jar命令打包生成双击即可运行的Java程序
- 摸索双击jar即可运行程序
- 如何把java项目(java文件)打包成.jar文件,双击即可运行.
- Test__GUI__用java编写一个简单的记事本程序,打包成jar双击运行
- 笔记:Java编译打包成可以双击运行的jar
- 关于jar打包双击运行的问题
- 生成可双击运行的Jar文件
- java程序打包成jar,运行jar的命令行方式
- jar命令打包Java程序
- JAVA 打包后的jar包双击无法运行,以及转换成exe文件
- 在eclipse中JAVA从打包成jar程序到双击运行的整个过程(没有主清单属性问题的解决)
- Java生成双击可执行的jar包
- java中如何制作可双击执行的程序--jar打包工具的使用
- 把自己的java程序打包成jar包运行
- 关于命令行下java程序的jar打包与运行
- 双击jar文件运行程序
- [Oracle] oracle修改数据文件名称
- STL 容器和ATL智能包裹类的冲突
- dev GridControl笔记
- 13.如何做到要求或禁止在堆中产生你自定义的对象
- 【示例代码】超萌的休闲HTML5小游戏——打地鼠
- 详解jar命令打包生成双击即可运行的Java程序
- 跑通第一个ruby on rails 出现问题及解决方案 参照cloudfoundry docs
- Kernel PCA 原理和演示
- freemarker helloworld
- delphi完美经典--第一、二章
- CEdit 文本垂直居中(单行解决方案)
- android 切割画布(clipRect)详解
- CreateDIBSection创建位图
- libxl创建串口流程分析