如何将java程序直接运行(生成.jar文件)
作者:xcbeyond
疯狂源自梦想,技术成就辉煌!微信公众号:《程序猿技术大咖》号主,专注后端开发多年,拥有丰富的研发经验,乐于技术输出、分享,现阶段从事微服务架构项目的研发工作,涉及架构设计、技术选型、业务研发等工作。对于Java、微服务、数据库、Docker有深入了解,并有大量的调优经验。
我们都知道,每次要运行java程序的时候,总是要打开elplise或者在DOS下敲命令来一步一步的运行,感觉很麻烦的,难道有没有其他方法可以直接运行java程序吗?就像c、c++一样,可以直接运行.exe文件就可以直接运行,答案是肯定可以直接运行的,就是把java运行的相关东西打包起来,压缩在一个.jar文件里,就可以了,下次运行的时候就可以直接点击.jar文件来运行你的程序了。好了,还是讲讲如何直接将java文件生成.jar文件吧!,其实.jar文件相当于我们平时所用的压缩包WinRAR一样,在此我就说说如何产生它吧:
例如我们编完一个程序,它生成了三个.class文件:Main.class, Philosopher.class, Chopsticks.class.
接下来把这三个文件放在同一个文件夹下,启动cmd,进入到存放三个.class文件的那个目录下.这里假设生成后的jar文件名为Test.jar,先运行 jar cvf Test.jar Main.class Philosopher.class Chopsticks.class
运行命令后得到以下输出信息:
标明清单(manifest)
增加:Main.class(读入= 4833) (写出= 2541)(压缩了 47%)
增加:Philosopher.class(读入= 1857) (写出= 1071)(压缩了 42%)
增加:Chopsticks.class(读入= 946) (写出= 574)(压缩了 39%)
在当前目录下会生成一个Test.jar的文件.接下来,用解压缩工具(如WinRAR)解压Test.jar,在解压出来的文件中有一个名为
META-INF 的文件来,打开它后会看到名为 MANIFEST.MF 的文件,用记事打开它,在它的最后面加入一行,内容为: Main-Class: Main
(说明:在Main-Class:和Main之间有个空格,行的末尾不能有多余的空格,也不在最后面有多余的空行)
Main-Class: 后面的内容要按实际情况来写,因为我这里的可执行class文件名为Main.class,所以我才在后面写Main. (程序运行的入口,即程序从哪个类开始运行)
假如你的可执行class的名为HelloWorld.class,那么最后一行的内容该写为 Main-Class: HelloWorld
接下来,把修改好的MANIFEST.MF文件拷贝,放在以前的那个文件夹(就是放有Main.class, Philosopher.class, Chopsticks.class这三个文件的文件夹)下,那么现在该文件来下就有四个文件,分别为Main.class, Philosopher.class, Chopsticks.class 和MANIFEST.MF.
在cmd中进入到那个文件夹目录,运行以下命令,这里假设要生成的jar文件还叫做Test.jar,你也可用其它名字:
jar cvfm Test.jar MANIFEST.MF Main.class Philosopher.class Chopsticks.class
运行后得到以下输出信息:
标明清单(manifest)
增加:Main.class(读入= 4833) (写出= 2541)(压缩了 47%)
增加:Philosopher.class(读入= 1857) (写出= 1071)(压缩了 42%)
增加:Chopsticks.class(读入= 946) (写出= 574)(压缩了 39%)
可在文件夹下看到生成了Test.jar文件,双击它即可运行你的Java程序了.至此,所有步骤就完成了
以后你想要运行这个程序就可以直接点击这个.jar文件了,这样可以方便以后的使用了。不过我在此说明一点,要想运行这个.jar文件,必须你的电脑上安装有JDK的环境,这一点我是亲自验证过的。