`
sunxiang0918
  • 浏览: 45856 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

从JAR包内读取文件

    博客分类:
  • J2SE
阅读更多

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里包含了你想要的资源,余下就是你想要做的工作所以省略 
                          ...  
        }
    }
 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics