?Eclipse jar打包和命令行运行
第1步:首先准备好manifest.mf,将该文件放在你的项目根目录下,方便维护。
manifest.mf文件定义如下所示:
Manifest-Version: 1.0
Main-Class: com.stephen.redis.RedisUtil
Class-Path: lib/commons-pool2-2.2.jar lib/jedis-2.5.2.jar
注意:
<1> manifest.mf文件最后一行必须是一个空行。
<2> lib/commons-pool2-2.2.jar和lib/jedis-2.5.2.jar之间用一个空格隔开。
<3>每个冒号后有一个空格。
<4>Main-Class 后面配置的是jar运行的入口class类。
<5>Class-Path 配置的是第三方jar包,相对目录位置,比如上面配置的lib/commons-pool2-2.2.jar lib/jedis-2.5.2.jar,表示这2个jar文件在lib目录下,并且这个lib目录和你生成的jar文件处于同一个目录下。
第二步:用eclipse导出生成jar文件
选中你的项目,鼠标右键选择Export菜单。如下图:
点击Export后看到如下界面:
选中JAR file,然后点按钮Next,显示如下图界面:
选中上图红框,黄框内的不要选
其中红框JAR file是配置导出的JAR的文件名和存放目录
在项目中只需要选择项目的java文件目录就可以,其他的比如项目用到的第三方jar一律不选。
然后点按钮next,出现如下图界面:
选择红框选项,继续点Next,出现如下图界面:
如图红框,选择事先准备好的MANIFEST.MF,然后点Finish按钮,这样就生成了我们需要的JAR文件。
切换到JAR文件所在的目录,把要用到的第三方JAR文件按照MANIFEST.MF中的配置,复制到JAR文件所在目录,这里按照上面的MANIFEST.MF配置,则在JAR文件所在位置新建一个lib目录,然后将用到的commons-pool2-2.2.jar和jedis-2.5.2.jar复制到lib目录内。
然后,开始在命令行开始运行这个JAR,确保JAVA环境是正常的,可以用命令测试java环境是否正常。
java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
看到类似提示,表示java环境正常。
运行JAR文件
java -jar test.jar
2016-04-08 10:55:57 初始化redis链接池:开始
2016-04-08 10:55:57 初始化redis链接池:成功
[001, 002, 003]
test.jar就是刚才用eclipse导出生成的JAR,可以看到命令执行后,输出正常。
by the way
如果把test.jar改为test.zip,然后解压这个test.zip,我们可以看到内部文件列表,如下图:
OK,全文结束!
补充:
1. 如果用到了配置文件怎么办?在实际项目中,配置文件是必然会遇到的,比如有数据库操作的话,就需要一个数据库配置文件(内容一般是数据库的地址、用户名、密码等参数)。
遇到这种情况,需要首先修改MANIFEST.MF文件,在Class-Path后面加上点(.)表示当前目录,这样运行时JVM会在当前目录中查找配置文件。
Manifest-Version: 1.0
Main-Class: MainUtil
Class-Path: .
lib/commons-pool2-2.2.jar
lib/jedis-2.5.2.jar
lib/mysql-connector-java-5.1.35-bin.jar
配置文件的格式一定要注意,稍微不对,运行就会出问题,格式如下图
红框表示1个半角空格,蓝框表示一个空行。
然后在打JAR包的时候,不要选配置文件,如下图:
黄框里面有3个配置文件,在生成JAR包时不要选!
等JAR生成完毕后,将配置文件拷贝到和JAR文件同一目录中,如:
这样,JAR文件就可以正常访问配置文件了。
2. 如果使用的第三方JAR文件特别多,怎么办?
这个情况可以在MANIFEST.MF作修改,如下图格式:将每个第三方jar文件分行写,注意前后的半角空格不要忘记。
标签:文件,配置文件,lib,Eclipse,JAR,jar,命令行,目录 From: https://blog.51cto.com/u_16160131/6473912