gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:58:31 27 4
gpt4 key购买 nike

我正在尝试加载我捆绑在 jar 文件中的资源。最初它们放置在 src/main/resources/*.wav 下。

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

在我的源代码中,我正在加载文件

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

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

我是不是错过了什么?也许是类路径?

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

  <build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>MyMain</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<mainClass>MyMain</mainClass>
</configuration>
</plugin>
</plugins>
</build>

最佳答案

我知道问题出在哪里了。问题不在于 Maven。

这是源代码,应该改为:

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

关于java - 如何加载由maven生成的可执行jar文件中捆绑的资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56397819/

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