java第三方包_java客户端引入第三方包方法
將java作為客戶(hù)端運(yùn)行(即通過(guò)java -jar client.jar方式運(yùn)行),如有引用第三方j(luò)ar包,不作特殊處理是無(wú)法正確運(yùn)行,會(huì)拋出ClassNotFoundException異常。
如以下代碼引用fastjson包
package asan.demo.client;
import com.alibaba.fastjson.JSON;
import java.util.HashMap;
import java.util.Map;
public class Client {
public Client() {
super();
}
public static void main(String[]cmd){
MapuserInfo=new HashMap();
userInfo.put("name", "jianfeng");
userInfo.put("company", "definesys");
userInfo.put("email", "jianfeng.zheng@definesys.com");
String json=JSON.toJSONString(userInfo);
System.out.println(json);
}
}
直接打包運(yùn)行,報(bào)以下錯(cuò)誤
通過(guò)MF文件引入方式
標(biāo)準(zhǔn)的jar包都有一個(gè)MF文件,該文件路徑為META-INF\MANIFEST.MF,可以將jar包解壓查看該文件,MF文件主要用來(lái)描述jar一些基本信息,如版本,作者,主類(lèi)路徑等。
如以上代碼打包后MF文件內(nèi)容如下:
這里信息較少,只有版本和主類(lèi)信息。注意,注意,這里總共有4行,MF文件結(jié)尾必須要有兩行空白行。
創(chuàng)建目錄lib該目錄和客戶(hù)端在同一個(gè)路徑下,將引用的jar包復(fù)制到lib目錄下,如圖
QQ20171015-173220@2x.png
在MF文件中增加一行(可以用壓縮軟件打開(kāi)jar編輯推薦使用7-Zip)
Class-Path: ./lib/fastjson-1.2.4.jar
如有多個(gè)jar包引用空格隔開(kāi)
Class-Path: ./lib/fastjson-1.2.4.jar ./lib/gson-2.2.4.jar
有兩個(gè)地方需要注意
Class-Path后面是英文冒號(hào),并且冒號(hào)后面有個(gè)空格
必須保證MF文件最后有兩行空格
這樣就可以正常運(yùn)行了。
通過(guò)jar命令
將所有jar包包括客戶(hù)端放到同一目錄下,分別用jar命令解壓到當(dāng)前目錄,客戶(hù)端最后解壓(避免MF文件被覆蓋)
jar -xvf fastjson-1.2.4.jar
jar -xvf Client.jar
解壓后的文件結(jié)構(gòu)如圖
將所有的jar文件刪除后執(zhí)行以下命令重新打包
jar -cvfM Client.jar *
重新打包后的jar就可以正常運(yùn)行
最后
兩種方式各有利弊,MF方式第三方j(luò)ar包更新無(wú)需重新打包,jar打包方式交付的時(shí)候只要一個(gè)jar包就夠了,但第三方包更新需要重新打包。
總結(jié)
以上是生活随笔為你收集整理的java第三方包_java客户端引入第三方包方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python 导入第三方包_Python
- 下一篇: 一方包、二方包、三方包是什么?