當前位置:才華齋>計算機>java語言>

Java如何讀取Jar中的資源

java語言 閱讀(2.65W)

導語:在開發java專案的`時候,經常會用到jar包,這裡就說下如何讀取,需要的朋友可以參考下:

Java如何讀取Jar中的資源

詳解Java讀取Jar中資原始檔及實現程式碼

直接上程式碼,文章的註釋部分說的比較清楚,大家可以參考下,

 工具類原始碼:

實現程式碼:

import ception;

import tStream;

import RLConnection;

import ormedURLException;

import ;

import ntry;

import ile;

import ils;

public class ResourceLoadFromJarUtil {

/**

* @param args

* @throws IOException

*/

public static void main(String[] args) throws IOException {

/* 資原始檔路徑,不能以'/'字元字元開頭 */

String resourcePath = "";

/* 獲取ClassPath下的所有jar路徑 */

String[] cps = roperty("")t(";");

/* 讀取本地Jar檔案 */

for (String cp : cps) {

if (!With("")) {

continue;

}

InputStream in = loadResourceFromJarFile(cp, resourcePath);

if (in != null) {

tln(ring(in));

e();

}

}

/* 讀取本地Jar檔案 */

for (String cp : cps) {

if (!With("")) {

continue;

}

InputStream in = loadResourceFromJarURL(cp, resourcePath);

if (in != null) {

tln(ring(in));

e();

}

}

/* 讀取網路Jar檔案 */

InputStream in = loadResourceFromJarURL(

"http://localhost:8080/SpringStruts2Integration/", resourcePath);

if (in != null) {

tln(ring(in));

e();

}

}

/**

* 讀取Jar檔案中的資源

*

* @param jarPath

* 本地jar檔案路徑

* @param resPath

* 資原始檔所在jar中的路徑(不能以'/'字元開頭)

* @return 如果資源載入失敗,返回null

*/

public static InputStream loadResourceFromJarFile(String jarPath, String resPath) {

if (!With("")) {

return null;

}

try {

JarFile jarFile = new JarFile(jarPath);

JarEntry jarEntry = arEntry(resPath);

if (jarEntry == null) {

return null;

}

return nputStream(jarEntry);

} catch (IOException e) {

tStackTrace();

return null;

}

}

/**

* 讀取Jar檔案中的資源

*

* @param jarUrl

* 本地jar檔案或網路上(ttp://host:port/subpath/)jar檔案路徑

* @param resPath

* 資原始檔所在jar中的路徑(不能以'/'字元開頭)

* @return 如果資源載入失敗,返回null

*/

public static InputStream loadResourceFromJarURL(String jarUrl, String resPath) {

if (!With("")) {

return null;

}

URL url = null;

if (tsWith("http://")) {

try {

url = new URL("jar:" + jarUrl + "!/");

} catch (MalformedURLException e) {

tStackTrace();

return null;

}

} else {

try {

url = new URL("jar:file:/" + jarUrl + "!/");

} catch (MalformedURLException e) {

tStackTrace();

return null;

}

}

try {

JarURLConnection jarURLConnection;

jarURLConnection = (JarURLConnection) Connection();

JarFile jarFile = arFile();

JarEntry jarEntry = arEntry(resPath);

if (jarEntry == null) {

return null;

}

return nputStream(jarEntry);

} catch (IOException e) {

tStackTrace();

return null;

}

}

}