Java 声音将在eclipse中播放,但不会在导出的jar文件中播放
运行JAR时不会播放声音,但在eclipse中运行时会播放声音 这里是我加载剪辑的地方:(文件从jar目录加载,而不是从jar内部加载)Java 声音将在eclipse中播放,但不会在导出的jar文件中播放,java,audio,jar,clip,Java,Audio,Jar,Clip,运行JAR时不会播放声音,但在eclipse中运行时会播放声音 这里是我加载剪辑的地方:(文件从jar目录加载,而不是从jar内部加载) public void init(){ System.out.println(“抓取音乐”); 字符串currentDir=新文件(“”).getAbsolutePath(); name=新文件(currentDir+“\\music\\”).list(); 剪辑=新剪辑[名称.长度]; soundFile=新文件[name.length]; 对于(int x
public void init(){
System.out.println(“抓取音乐”);
字符串currentDir=新文件(“”).getAbsolutePath();
name=新文件(currentDir+“\\music\\”).list();
剪辑=新剪辑[名称.长度];
soundFile=新文件[name.length];
对于(int x=0;x您的声音没有播放的原因是,它很可能没有被编译到您的可运行jar中,因此无法找到。将其编译到可运行jar中的最佳方法是在eclipse中创建一个源文件夹,然后将您的声音文件添加到其中。然后它将被编译到您的jar中。我也在为此而挣扎l、 你需要使用
getClass().getSystemResource(“pathToResourceFromClass”)
例如,如果项目结构如下所示:
-项目名称
-----src
----------SomeClass.java
-----图像
----------SomeImage.png
然后从SomeClass.java,您将使用
getClass().getSystemResource("images/SomeImage.png")
获取引用该文件的URL
对象。然后,如果需要,可以将该URL
对象传递给ImageIcon
的构造函数
请注意,getClass().getResource()
不适用于jar文件中的图像或声音文件!!!我已经花了很多时间在这方面,而getResource()
不起作用。您必须使用getSystemResource(…)
来获取jar文件中的资源
让我知道如果你对此有任何疑问。我会很乐意澄清任何混淆点。
明显的问题:jar是否包含声音文件?看起来文件是从文件系统加载的,基于JAR文件的当前执行上下文。这两条路径可能不相同。考虑使用嵌入式RESO。由于未引发fileNotFound异常,urces INSTADIT可以确定找到该文件。请尝试使用WINRAR打开可运行的jar,看看它是否在其中。文件是从jar外部加载的,而不是从内部加载的。
getClass().getSystemResource("images/SomeImage.png")