博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
执行可运行jar包时读取jar包中的文件
阅读量:6518 次
发布时间:2019-06-24

本文共 1475 字,大约阅读时间需要 4 分钟。

可运行的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包之后运行如下:

 

转载地址:http://kxgfo.baihongyu.com/

你可能感兴趣的文章
web.xml 中的listener、 filter、servlet 加载顺序
查看>>
MyBatis原理简介和小试牛刀
查看>>
js部分基础
查看>>
脏读,幻读,不可重复读解释和例子
查看>>
Tomcat指定(JDK路径)JAVA_HOME而不用环境变量
查看>>
说说云计算与移动管理
查看>>
T-Mobile美国使用28GHz频段测试5G
查看>>
如何缓解影子云服务安全风险?
查看>>
银行卡信息安全事件频发 互联网站成数据泄露"重灾区"
查看>>
云服务器 ECS 使用OpenAPI管理ECS:使用OpenAPI弹性创建ECS实例
查看>>
象云2.0产品发布暨国产操作系统首次入驻公有云
查看>>
一个完美DCIM应该具备的功能与价值
查看>>
经验贴 | 电梯监控的布线技巧
查看>>
研究显示:广告拦截应用正在破坏互联网
查看>>
写个软件来防止服务器网站CPU百分百
查看>>
智能城市里,“公共电话亭”的存在意味着什么?
查看>>
JVM分代垃圾回收策略的基础概念
查看>>
《交互式程序设计 第2版》一3.5 捕获简单用户交互行为
查看>>
5G技术的5大猜想
查看>>
MongoDB 3.0(1):CentOS7 安装MongoDB 3.0服务
查看>>