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

 

你可能感兴趣的:(jvm,工作)