如何将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的环境,这一点我是亲自验证过的。