![](/img/trans.png)
[英]Java - Export to JAR file in eclipse with resources (images and audio files)
[英]Audio resources wont play after export to jar
好的,所以我有一个简单的程序来加载音频文件并播放它们。
我有这个用于加载我的音频文件
Clip c1 = null;
try {
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(songPaths[k + 1]).getAbsoluteFile());
c1 = AudioSystem.getClip();
c1.open(audioInputStream);
} catch (Exception ex) {
System.out.println("Error with playing sound.");
ex.printStackTrace();
}
它在我的intelliJ中运行良好,当我试图构建工件并尝试运行所创建的jar时,它无法加载资源。 我的songPaths数组如下所示:
private final String[] songPaths = {"res/fcpOriginal.wav", "res/fcpRemix.wav",
"res/ibizaOriginal.wav", "res/ibizaRemix.wav",
"res/pohOriginal.wav", "res/pohRemix.wav",
"res/sugarOriginal.wav", "res/sugarRemix.wav",
"res/wavesOriginal.wav", "res/wavesRemix.wav"};
我不太确定发生了什么。 任何帮助将不胜感激。
因此,如果我正确地理解了您的目录层次结构,那么您将具有以下优势:
src
out / artifacts / nameOfProject_jar。
资源
您应该将res文件夹的副本放入nameOfProject_jar文件夹中。 因为您的应用程序的工作目录现在是您的nameOfProject_jar文件夹,所以当您使用类似的相对路径时,它将在nameOfProject_jar目录中查找res文件夹。 :)
我想到了。 对于任何未来的研究人员!
我变了
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(songPaths[k + 1]).getAbsoluteFile());
至
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(getClass.getResource(songPaths[k + 1]));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.