使用java -jar运行jar包

Posted 吃饭了吗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用java -jar运行jar包相关的知识,希望对你有一定的参考价值。

 使用java -jar运行jar包

摘要 其实不难,网上搜了不少,但是讲不全,或者讲得不少,有的细节却漏掉了, 在此,我想将详细点

1.其实命令比较简单:进入相应的目录后,执行java -jar XXX.jar即可!

2.但是,为什么通过Maven打包或者Eclipse export出来的jar不能运行呢?原因很简单,没指定执行哪个类的main方法,如何指定?配置文件,项目文件夹下有一个META-INF文件夹,META-INF文件夹下有一个MANIFEST.MF文件,只要更改该文件就可以了

3.默认该文件内容是:

Manifest-Version: 1.0
Created-By: 1.4.2(Sun Microsystems Inc.)

将其改成

Manifest-Version: 1.0
Created-By: 1.4.2(Sun Microsystems Inc.)
Main-Class: XXX.XXX.XXX.XXX

 
注意:

 

Main-Class后面X部分是包名.类名

Main-Class:后面有个空格,下面还有空的一行

 

4.改好内容后,怎么将其打成jar包呢?

我试过,直接用winrar打包,然后改后缀名,不行,

以下这种方法可行:

假设你的jar包名为myJar.jar:

(1)先将myJar.jar解压至myJar(在同一层文件夹)

(2)进入myJar文件夹,再进入META-INF文件夹,更改MANIFEST.MF文件,

        按照步骤三的操作即可

(3)保存后退到myJar.jar同一层目录,然后执行jar umf myJar/META-INF/MANIFEST.MF myJar.jar

        如果没报错,并生成了XXX.tmp文件,就说明执行成功,

        打开myJar.jar就可以看到MANIFEST.MF文件已经被改成了相应的需要的文件了

(4)在当前目录执行java -jar myJar.jar即可

以上是关于使用java -jar运行jar包的主要内容,如果未能解决你的问题,请参考以下文章

我应该采用 Java 12 还是坚持使用 Java 11?

java语言Class类的作用是啥以及怎么使用?

什么是java控件?怎样使用java控件?

JAVA中 如何使用延迟?

Java编程系列使用Java进行串口SerialPort通讯

使用 Gradle 构建 Java 项目