详解jar命令打包生成双击即可运行的Java程序

简介:

之前有同学问我怎样把自己的程序做得像Windows下的.exe文件那样直接双击就可运行,因为大家都厌烦了Java在控制台下的“javac”再“java”的操作方法。现在我就拿出当时给班里的同学写的实验指导来实现一下吧。大家互相学习。

平时我们写了Java程序,每次都要在命令行提示符的控制台下进行编译、运行,而且只是在本机上进行的。如果我们想要把自己开发的一些小游戏之类的程序打包发给好友们互相学习,那就需要用到“jar”命令来打包生成双击就可运行的程序包了。当然,前提是对方的机器已经安装了合适版本的JDK

话不多说,直接用例子来说明问题吧。具体操作流程如下:

1、编写一个GUI程序(其他程序也可,只不过不够直观而已);

2、编写名为“manifest”的文件;

3、在控制台中使用“jar”命令按照指定的方式进行代码打包;

4、双击生成的“jar”包,即可运行我们的GUI程序了;

5、若上面第四步的方法不奏效,那么就应该编写Windows下后缀名为“.bat”的批处理文件,再双击该.bat文件即可;

首先,我们先在控制台下查看一下“jar”命令的用法,就会比较清楚上面第23步骤的原理和操作了。在控制台中输入“jar”命令,结果如下:

大家也动手试一下,有比较清楚的实例可以看。

实验开始:

1、假设我们编写的GUI程序代码如下,类名为Week_9.java,必须包含main()函数


 
 
  1. import javax.swing.JFrame ;  
  2.  
  3. public class Week_9{  
  4.     public static void main(String args[]){  
  5.         JFrame frame = new JFrame("Java表格") ;  
  6.         String[] titles = {"姓名","年龄","性别"} ;        //表格标题  
  7.         Object [][] userInfo = {  
  8.             {"小强",30,"男"} ,  
  9.             {"小明",23,"女"}   
  10.         } ;                                             // 初始化数据  
  11.         JTable table = new JTable(userInfo,titles) ;    // 建立表格  
  12.         JScrollPane scr = new JScrollPane(table) ;      //用可滚动的JScrollPanel来包装JTable  
  13.         frame.add(scr);                                 //将JScrollPanel添加进窗口中  
  14.         frame.setSize(400200);  
  15.         frame.setLocation(30050);  
  16.         frame.setVisible(true);  
  17.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  18.     }  

 

代码就不具体讲明了,因为我们可以用其他包含有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 批处理文件里面的命令就相当于我们平时在命令提示符窗口下输入运行某个程序时输入的一样,请自行搜索批处理文件的相关知识。



本文转自 xxxx66yyyy 51CTO博客,原文链接:http://blog.51cto.com/haolloyin/335742,如需转载请自行联系原作者

相关文章
|
5月前
|
人工智能 监控 安全
智慧工地解决方案,java智慧工地程序代码
智慧工地系统融合物联网、AI、大数据等技术,实现对施工现场“人、机、料、法、环”的全面智能监控与管理,提升安全、效率与决策水平。
173 2
|
3月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
347 98
|
9月前
|
前端开发 Java 关系型数据库
基于Java+Springboot+Vue开发的鲜花商城管理系统源码+运行
基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。技术学习共同进步
590 7
|
4月前
|
存储 Java 编译器
对比Java学习Go——程序结构与变量
本节对比了Java与Go语言的基础结构,包括“Hello, World!”程序、代码组织方式、入口函数定义、基本数据类型及变量声明方式。Java强调严格的面向对象结构,所有代码需置于类中,入口方法需严格符合`public static void main(String[] args)`格式;而Go语言结构更简洁,使用包和函数组织代码,入口函数为`func main()`。两种语言在变量声明、常量定义、类型系统等方面也存在显著差异,体现了各自的设计哲学。
|
8月前
|
Arthas 存储 监控
Arthas heapdump(dump java heap, 类似 jmap 命令的 heap dump 功能)
Arthas heapdump(dump java heap, 类似 jmap 命令的 heap dump 功能)
607 8
|
9月前
|
监控 数据可视化 Java
调试技巧 - 用Linux命令排查Java问题
总的来说,使用Linux命令来排查Java问题,需要一定的实践经验和理论知识。然而,只要我们愿意花时间深入了解这些工具,我们就能够熟练地使用它们来分析和解决问题。此外,这些工具只是帮助我们定位问题,真正解决问题需要我们对Java和JVM有深入的理解,并能够读懂和分析代码。
523 13
|
10月前
|
Java C语言
课时8:Java程序基本概念(标识符与关键字)
课时8介绍Java程序中的标识符与关键字。标识符由字母、数字、下划线和美元符号组成,不能以数字开头且不能使用Java保留字。建议使用有意义的命名,如student_name、age。关键字是特殊标记,如蓝色字体所示。未使用的关键字有goto、const;特殊单词null、true、false不算关键字。JDK1.4后新增assert,JDK1.5后新增enum。
208 4
|
10月前
|
Java 编译器
课时7:Java程序基本概念(注释)
课时7介绍了Java程序中的注释。编程语言有其语法和语义,注释有助于理解代码需求,防止断档。Java支持三类注释:单行(//)、多行(/* */)和文档注释(/** */)。注释不会被编译器编译。范例中展示了如何在代码中使用注释,并强调了注释对项目文档管理的重要性。
237 3
|
10月前
|
搜索推荐 Java Android开发
课时146:使用JDT开发Java程序
在 Eclipse 之中提供有 JDT环境可以实现java 程序的开发,下面就通过一些功能进行演示。 项目开发流程
358 0

热门文章

最新文章