java 如何列出jar包中jar包里的所有文件和目錄?
問(wèn)題描述
如這樣一個(gè)目錄/Users/xxx/IdeaProjects/abc/web/target/web.jar!/BOOT-INF/lib/rest-0.0.1.jar!/com/tg/tiny/Users/xxx/IdeaProjects/abc/web/target/web.jar這個(gè)jar包下的文件目錄可以這樣得到
JarFile localJarFile = new JarFile(new File('/Users/xxx/IdeaProjects/abc/web/target/web.jar'));Enumeration<JarEntry> entries = localJarFile.entries();while (entries.hasMoreElements()) { JarEntry jarEntry = entries.nextElement(); System.out.println(jarEntry.getName());}
那么這個(gè)web.jar里的rest-0.0.1.jar下的文件目錄如何得到?
問(wèn)題解答
回答1:URL url = new URL('jar', null, 0, 'file:/Users/xxx/IdeaProjects/web/target/web.jar!/BOOT-INF/lib/rest.jar');URLConnection con = url.openConnection();if (con instanceof JarURLConnection) { JarURLConnection result = (JarURLConnection) con; JarInputStream jarInputStream = new JarInputStream(result.getInputStream()); JarEntry entry; while ((entry = jarInputStream.getNextJarEntry()) != null) {System.out.println(entry.getName()); }}回答2:
jar包是個(gè)文件。不是目錄。需要通過(guò)classloader的getResourceAsStream()。
package edu.hxraid; import java.io.*; public class Resource { public void getResource() throws IOException{ //返回讀取指定資源的輸入流 InputStream is=this.getClass().getResourceAsStream('/resource/res.txt'); BufferedReader br=new BufferedReader(new InputStreamReader(is)); String s=''; while((s=br.readLine())!=null) System.out.println(s); } }
詳細(xì)使用:http://www.myexception.cn/pro...
相關(guān)文章:
1. javascript - js控制元素樣式的疑惑2. css3 - 網(wǎng)站放在本地和放在遠(yuǎn)端服務(wù)器用 iPhone Safari 打開(kāi)樣式不同3. javascript - node.js不同模塊之間如何傳值4. android - 哪位大神知道java后臺(tái)的api接口的對(duì)象傳到前端后輸入日期報(bào)錯(cuò),是什么情況?求大神指點(diǎn)5. mac連接阿里云docker集群,已經(jīng)卡了2天了,求問(wèn)?6. html - 哪些情況下float會(huì)失效?7. javascript - web 移動(dòng)端瀏覽器 用js 能不做判斷當(dāng)前手機(jī)安裝沒(méi)安裝app 如果安了就去打開(kāi) 沒(méi)安就去下載哇?8. css3 - text-overflow為何會(huì)在li的子標(biāo)簽a下失效9. 就一臺(tái)服務(wù)器,mysql數(shù)據(jù)庫(kù)想實(shí)現(xiàn)自動(dòng)備份,如何設(shè)計(jì)?10. [前端求職必看]前端開(kāi)發(fā)面試題與答案精選_擴(kuò)展問(wèn)題
