从JAR包内读取文件

JVM是根据你的文件系统来寻找class和资源的,由于你的程序一经打包, 
  getgetClass().getResource("/").getPath();的路径就和你未打包之前不同,所以才会找不到资源,解决办法如下: 

JarFile   jarFile   =   new   JarFile(jarName); 
          Enumeration   enum   =   jarFile.entries(); 
          while   (enum.hasMoreElements())   { 
                  JarEntry   entry   =   (JarEntry)enum.nextElement(); 
                  if   (entry.isDirectory())   continue; 
                  //下面这个字符串保存着不是目录的资源(如图片)或类(如.class文件) 
                  String   jar   =   entry.getName(); 
                  if   (在这里填入你的资源名称以便查找)   { 
                          //   载入该资源!   
                          InputStream   is   =   jarFile.getInputStream(entry); 
                          if   (is   ==   null)   
                                  throw   new   IOException("Unable   to   load   resource   /"); 
                          //is里包含了你想要的资源,余下就是你想要做的工作所以省略 
                          ...  
        }
    }
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值