2014-06-19 100 views
0

一切工作正常,虽然我的IDE是开放的,但是当我建立我的项目它不是作为jar文件工作。我想问题是在我的资源的路径,我找不到任何方式来处理这个问题,请帮助我,如果你有任何解决方案。Jar文件丢失文件路径

public void playSound(String filename){ 

     String strFilename = filename; 

     try { 
      ClassLoader classLoader = getClass().getClassLoader(); 
      soundFile = new File(classLoader.getResource(strFilename).getFile()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
      System.exit(1); 
     } 
+0

请显示StackTrace – LMK

+0

[Ljava.lang.StackTraceElement:@ 2b5a780 <<<< StackTrace – Disavowed

+0

@ user3704324这不是一个堆栈跟踪。参见'e.printStackTrace();'行?请编辑您的问题以包含该行的输出。 – Kenster

回答

0

您无法将jar中的资源作为文件进行寻址。在您的IDE中,它可能是文件系统中的文件,而不是jar中的资源。您需要能够将内容读取为URL和/或InputStream。

+0

但是当我建立我的项目时,Jar文件将我的.wav资源保存在自己的内部,然后如何调整路径? – Disavowed

+0

“文件名”参数必须与你的类路径相关(即它在你的jar中的位置)。如果你使用的是标准的maven项目结构,它将与/ src/main/resources相关。你的代码的classLoader.getResource部分没问题。当您尝试将该资源转换为您遇到问题的文件时。 –