gpt4 book ai didi

java - Jar可执行文件不是播放wav,而是播放midi并加载其他资源

转载 作者:行者123 更新时间:2023-12-03 01:57:46 25 4
gpt4 key购买 nike

将所有内容打包到 jar 中后,声音停止工作,如果我使用JOptionPane检查异常,则会得到空指针。奇怪的是,它可以与Midis一起使用。

我想我已经尝试了我在这里提出的所有建议,但似乎没有任何效果。

这是我的项目结构和代码(我从Semaforo.java调用它,并且正在使用Linux)。有小费吗?



Code

结构体

Structure

最佳答案

系统类加载器(可能是通过调用getClassloader()访问的内容)与项目中类使用的搜索路径之间存在区别。

除了从JVM运行时通过rt.jar加载类之外,系统类加载器不知道如何做。您的类知道它们从哪个Jar或文件树加载,并且可以从这些位置加载资源。

无论如何,删除getClassloader()并仅调用class.getResourceAsStream()对我来说是可行的。

public class WavTest
{
public static void main(String[] args) throws Exception {
InputStream ins = WavTest.class.getResourceAsStream("/res/Crash-Cymbal-1.wav");
if( ins == null ) {
System.err.println("Oops");
return;
}
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(ins);
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
Thread.sleep(2000);
}
}

关于java - Jar可执行文件不是播放wav,而是播放midi并加载其他资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34056787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com