linux shell java jar 使用依赖包时classpath的设置问题

在linux下通过命令行或shell脚本执行jar包时,如果该jar包没有引用外部jar包,则非常容易,只需使用如下命令就可以实现:

java -jar Test.jar   #注意,如果在打包jar文件时,没有指定Main入口所在的类,则需要在后面加上类的命名,如com.test.HelloWord
但是实际应用或者生产环境,根本不可能有如果容易的需求,那如果该jar需要引用外部jar包,那又当如何实现?需要做一些设置工作,下面是实现步骤:

一、使用jar包的配置文件来引用外部jar包

1、配置MANIFEST.MF文件

在打包好的jar中,META-INF/MANIFEST.MF 这个文件中列出所需的外部jar包,文件内容参考如下:

Manifest-Version: 1.0 
Main-Class: xx.json.SentJsonT 
Class-Path: lib/commons-beanutils-1.9.2.jar lib/commons-collections-3.2.2.jar lib/commons-io-2.5.jar lib/commons-lang-2.6.jar lib/commons-logging-1.2.jar lib/ezmorph-1.0.6.jar lib/httpclient-4.4.1.jar lib/httpcore-4.4.1.jar lib/httpmime-4.4.1.jar lib/jcl-over-slf4j-1.7.7.jar lib/json-lib-2.4-jdk15.jar lib/noggit-0.6.jar slf4j-api-1.7.7.jar lib/solr-solrj-6.0.1.jar lib/stax2-api-3.1.4.jar lib/woodstox-core-asl-4.4.1.jar lib/zookeeper-3.4.6.jar


注意事项

1)、Class-Path 后面的jar包的路径是liunx下的相对路径,Windows需要修改为\。

2)、Class-Path 后面的jar包之间使用空格分隔,而且必须在同一行中。


2、把所有外部jar包置于lib文件夹下

在xx.json.SentJsonT.jar所在的文件夹下,创建lib文件夹,把所有外部jar包放到该文件夹下。

3、运行该jar包

java -jar SendJonT.jar		#一样的简单,不一样的效果


二、使用Java系统环境变量

就是把所有外部的jar包,添加到CLASS_PATH变量里。




你可能感兴趣的:(Linux,java)