2014-06-19 6 views
0

Tout fonctionne correctement lorsque mon ide est ouvert, mais quand je construis mon projet, il ne fonctionne pas comme fichier jar. Je suppose que le problème est sur le chemin de ma ressource, je ne trouve aucun moyen de résoudre ce problème, s'il vous plaît aidez-moi si vous avez une solution.Fichier Jar Fichier Manquant

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

s'il vous plaît montrer le StackTrace – LMK

+0

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

+0

@ user3704324 Ce n'est pas une pile. Voir la ligne 'e.printStackTrace();' Veuillez modifier votre question pour inclure la sortie de cette ligne. – Kenster

Répondre

0

Vous ne pouvez pas adresser une ressource dans votre fichier en tant que fichier. Dans votre IDE, c'est probablement un fichier dans le système de fichiers, pas une ressource dans un pot. Vous devez être capable de lire le contenu en tant qu'URL et/ou InputStream.

+0

Mais quand je construis mon projet, le fichier Jar garde ma ressource .wav en elle-même, comment puis-je ajuster le chemin? – Disavowed

+0

L'argument "filename" doit être relatif à votre chemin de classe (c'est-à-dire à l'endroit où il se trouve dans votre jar). Si vous utilisez une structure de projet maven standard, elle sera relative à/src/main/resources. La partie classLoader.getResource de votre code est correcte. C'est lorsque vous essayez de transformer cette ressource dans un fichier que vous rencontrez des problèmes. –