我正在使用Java项目执行此操作而不是动态Web项目,我只是将 .wav 文件直接放到项目中(在项目名称上右键单击n粘贴)。
我试过阅读很多帖子但没有用。帮助我。我试着阅读很多帖子但没有用。
try{
// Open an audio input stream.
URL url = this.getClass().getClassLoader().getResource("Rain.wav");
System.out.println("url:"+url);
AudioInputStream audioIn = AudioSystem.getAudioInputStream(url);
// Get a sound clip resource.
Clip clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
/* clip.loop(Clip.LOOP_CONTINUOUSLY); */
} catch (UnsupportedAudioFileException e) {
e.printStackTrace();
}
答案 0 :(得分:2)
getClass()。getClassLoader()。getResource(path)总是返回null,即使路径正确
不,不。
我刚把我的.wav文件放到了项目
完全。那是错误的地方。你的道路不正确。您的Rain.wav
文件需要以您查找的方式位于JAR文件的根目录中。该项目的根本与它无关。
答案 1 :(得分:1)
从Spring Boot JAR加载文件
如果您想从Spring Boot JAR中的类路径加载文件,则必须使用resource.getInputStream()方法将其作为InputStream检索。如果尝试使用resource.getFile(),则会收到错误消息,因为Spring尝试访问文件系统路径,但无法访问JAR中的路径。
Resource resource = resourceLoader.getResource("classpath:GeoLite2-Country.mmdb");
InputStream dbAsStream = resource.getInputStream()
[博客]:https://smarterco.de/java-load-file-from-classpath-in-spring-boot/