Java 如何将文件包含到jar文件中?

Java 如何将文件包含到jar文件中?,java,jar,classpath,Java,Jar,Classpath,我正在尝试将一些.txt、.png和其他文件包含到我的jar文件中。我在src文件夹下创建了一个名为“resources”的文件夹。从我的IDE运行程序时,程序可以正确找到所有文件。但是,只要我用代码创建一个jar文件,就找不到任何文件。当然,我使用了getClass().getResource(…) 有人能帮我吗/ 在您的pom.xml中,在下,您必须包括以下内容: <resources> <resource> <d

我正在尝试将一些.txt、.png和其他文件包含到我的jar文件中。我在src文件夹下创建了一个名为“resources”的文件夹。从我的IDE运行程序时,程序可以正确找到所有文件。但是,只要我用代码创建一个jar文件,就找不到任何文件。当然,我使用了getClass().getResource(…)


有人能帮我吗/

在您的
pom.xml
中,在
下,您必须包括以下内容:

    <resources>
        <resource>
            <directory>${basedir}/src/resources</directory>
            <includes>
                <include>**/*.txt</include>
            </includes>
        </resource>
    </resources>

${basedir}/src/resources
**/*.txt
(这是假设您的来源在
src
下,换句话说,在
下您有:
src

这对我有效:

  • 将所有资源放在“src”文件夹中(是的,放Java源代码的文件夹)

  • 您可以将资源加载到您的资源URL:

  • 代码如下:

    URL res = AnyClassYouLike.class.getResource("res/icon.png");
    Image img = Toolkit.getDefaultToolkit().getImage(res);
    // I used image just for example! URL objects obtained
    // from "getResource" method can be used in a lot of APIs, such as Swing.
    
    或者,更一般地,作为InputStream对象:

    InputStream is = AnyClassYouLike.class.getResourceAsStream("res/my_resource.ext");
    // This will give you the stream to your file. It can be used in some APIs, like an Audio API, very likely.
    

    OT:谁是否决了工作答案的用户?这个网站上的人真是语无伦次!