执行可运行jar包时读取jar包中的文件

可运行的jar包,都会在META-INF\MANIFEST.MF中设置Main-Class

那么如何在jar包中读取其中的某个文件呢?

注意:是在可运行的jar包中读取该jar包中的文件,也就是说读取jar包中文件的这段代码在该jar包中

 TestUrl类内容如下:

Java代码   收藏代码
  1. import java.io.IOException;  
  2. import java.io.InputStream;  
  3. import java.net.MalformedURLException;  
  4. import java.net.URL;  
  5.   
  6. import com.common.util.SystemHWUtil;  
  7. import com.io.hw.file.util.FileUtils;  
  8.   
  9. public class TestUrl {  
  10.   
  11.     public static final String JAR_META_INF="META-INF";  
  12.     /** 
  13.      * @param args 
  14.      */  
  15.     public static void main(String[] args) {  
  16.         // URL url= new  
  17.         // URL("jar:file:/D:/eclipse/workspace/jetty_icserver/jetty_icserver-0.0.1-SNAPSHOT.jar!/contexts");  
  18.         String jarBasepath=getJarPath("com");  
  19.         System.out.println(jarBasepath);  
  20.         try {  
  21.             URL url=new URL(jarBasepath+"/com/jn/url/a.txt");  
  22.             InputStream in= url.openStream();  
  23.             System.out.println("content:"+FileUtils.getFullContent3(in,SystemHWUtil.CHARSET_UTF));  
  24.             System.out.println(url);  
  25.         } catch (MalformedURLException e) {  
  26.             e.printStackTrace();  
  27.         } catch (IOException e) {  
  28.             e.printStackTrace();  
  29.         }  
  30.           
  31.           
  32.   
  33.     }  
  34.   
  35.     /*** 
  36.      *  
  37.      * @param tag  : 必须是jar包根目录下的目录或文件 
  38.      * @return 
  39.      */  
  40.     public static String getJarPath(String tag){  
  41.         if(tag==null){  
  42.             tag=JAR_META_INF;  
  43.         }  
  44.         URL url = TestUrl.class.getResource("/"+tag);  
  45.         System.out.println("url1:"+url);  
  46.         String urlPath=url.toString();//jar:file:/D:/eclipse/workspace/test_url/target/test_url-0.0.1-SNAPSHOT.jar!/META-INF  
  47.         int index=urlPath.indexOf(".jar!/"+tag);  
  48.         return  urlPath.substring(0, index+5);  
  49.     }  
  50.     /*** 
  51.      *  
  52.      * @return 
  53.      */  
  54.     public static String getJarPath(){  
  55.         return getJarPath(null);  
  56.     }  
  57. }  

 打成jar包之后运行如下:

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值