如何加载由maven生成的可执行jar文件中捆绑的资源?

时间:2019-05-31 15:23:44

标签: java maven

我正在尝试加载捆绑在jar文件中的资源。 最初它们位于var string1 = "Dog (big), 0" var string2 = "Dog (medium) (black), 1" var string3 = "Dog (small) (brown), 1" What I want: string1 = "Dog, 0" string1 = "Dog (medium), 0" string1 = "Dog (small), 0" 下。

要生成我的jar文件,我使用了maven-jar-plugin。 如果解压缩jar文件,则可以看到资源文件。

在我的源代码中,我正在使用

加载文件
src/main/resources/*.wav

当我通过IntelliJ运行应用程序时,这似乎起作用。 但是,当我尝试执行生成的jar文件时,无法加载资源。

我错过了什么吗?也许是classpath?

编辑 我的pom.xml具有以下构建属性:

AudioSystem.getAudioInputStream(MyClass.class.getResourceAsStream("/my-file.wav"));

1 个答案:

答案 0 :(得分:0)

我弄清楚了问题所在。 问题还不是Maven。

这是源代码,应更改为:

URL url = this.getClass().getClassLoader().getResource("my-resource.wav");
AudioSystem.getAudioInputStream(url)