详解jar命令打包生成双击即可运行的Java程序
之前有同学问我怎样把自己的程序做得像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”命令,结果如下:
<!--EndFragment-->大家也动手试一下,有比较清楚的实例可以看。
实验开始:
1、假设我们编写的GUI程序代码如下,类名为Week_9.java,必须包含main()函数:
<!--EndFragment-->
- 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 批处理文件里面的命令就相当于我们平时在命令提示符窗口下输入运行某个程序时输入的一样,请自行搜索批处理文件的相关知识。
相关推荐
java程序双击运⾏_双击jar⽂件运⾏程序 Java应⽤程序jar⽂件可以由 JVM(Java虚拟机)直接执⾏,只要操作系统安装了JVM便可以运⾏作为Java应⽤程序的jar⽂件。可是,很多 朋友遇到⼀个难题,那就是下载了jar⽂件以后在...
IBM的heapanalyzer,可以分析dump出的JVM内存快照。在命令行中,进入到jar文件所在目录,输入命令java -Xmx3000m -jar ha456.jar运行。
代理Java包,用于生成JVM的健康的数据,jmx_prometheus_javaagent-0.12.0.jar
kotlinx-coroutines-io-jvm-0.1.1.jar
bcprov-ext-jdk15on-1.54.jar、bcprov-jdk15on-1.54.jar和ssl-provider-jvm16-0.2.jar附件下载
VC调用java的简单例子。需要注意jvm.dll路径,路径不对就不能成功!
ibm HeapAnalyzer JVM内存分析工具 ha457.jar下载
ojdbc6-11.2.0.3.jar 解压缩即可用
JVM性能监控工具VisualVM Jconsole插件所需jar包 JTop.jar 点击'JConsole Plugins'按钮 点击'Add JAR/Folder'按钮, 添加JDK_HOME/demo/management/JTop/JTop.jar7)重新打开监控页面,可以看到JConsole
JAVA应用JVM原理及参数调优深入讲解视频.1 JAVA应用JVM原理及参数调优深入讲解视频.2 JAVA应用JVM原理及参数调优深入讲解视频.3 JAVA应用JVM原理及参数调优深入讲解视频.4 JAVA应用JVM原理及参数调优深入讲解视频.5 ...
okio-1.7.0.jar、okhttp-2.7.5.jar
标签:ant-eclipse-jvm1.2-1.0.jar.zip,ant,eclipse,jvm1.2,1.0,jar.zip包下载,依赖包
大家都知道,通常Java程序需要JVM与OS互动才能运行于本地环境之上,所谓鱼与熊掌不可兼得,这样做虽然极大降低了程序的移植难度,却同时增加了程序的环境要求,因为无论你用什么方法,总需弄个虚拟机才能让你的Java...
rt.jar源码 JVM探究 请你谈谈你对JVM的理解?java8虚拟机和之前的变化和更新? 首先JVM由类装载器,运行时数据区域,执行引擎,本地接口库和本地方法库组成。 什么是OOM,什么是栈溢出StackOVerFlowError? 怎么...
rt.jar源码 JVM的重要性不言而喻,这个是学习JVM是看视频和读《深入理解JVM》时做的一些笔记,用于复习参考。 读书笔记 第2章:java内存模型和内存溢出异常 1.运行时数据区域 1.程序计数器:线程私有 2.java虚拟机栈...
Java Jar JVM Exe 可执行文件 Java Jar JVM Exe 可执行文件 Java Jar JVM Exe 可执行文件 Java Jar JVM Exe 可执行文件 Java Jar JVM Exe 可执行文件
IBM jvm 分析工具 jca436.jar
gcviewer-1.36-SNAPSHOT.jar 主要是jvm 内存垃圾回收 界面图示展示分析 非常好的一筐工具
fatjar.jar(jar打包工具,配合exe4j 生成EXE,比eclipse打包要好) 生成exe的过程: 1.eclipse中导入fatjar.jar 2.右键点击项目看到那个绿色的加号,一直next,生成jar 3.用exe4j打包,选择jar in exe mode,后面的...
JAVA命令大全-JVM设置.rar JAVA命令大全-JVM设置.rar