首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven和IntelliJ资源

Maven和IntelliJ资源
EN

Stack Overflow用户
提问于 2018-08-21 15:07:37
回答 1查看 516关注 0票数 0

这似乎是一个简单的问题,但我似乎找不到任何解决办法,或者我不理解我读到的一些帖子。

我有一个包含一些资源的Maven项目,放在"/src/main/ resources /“文件夹下。让它成为一个text.txt文件。我被告知,我放置到该文件夹或在pom.xml文件中声明的任何文件夹中的任何文件都将放在"/“中(项目根文件夹,您在解压缩独立jar文件时可以看到这一点)。

因此,根据这种逻辑,当Maven将文件打包到jar中时,我应该能够通过"text.txt“访问文件。但是这样做意味着IntelliJ无法在"text.txt“处看到文本文件,因为它位于"/src/main/resources/text.txt”。我是否正确地理解了打包过程,以及我应该将哪条路径放入代码中?

谢谢你的进阶。

编辑:

正如一些人所指出的,我需要更具体地说明这一点。

假设我的Main.java位于src/main/java//Main.java,下面是它的代码:

代码语言:javascript
复制
import java.io.*;
import java.nio.file.Files;

public class Main {
    public static void main(String[] args) throws IOException {
        //stub
        System.out.println("Entered the program");
        File file=new File("src/main/resources/text.txt");
        System.out.println("String in text file: " + new String(Files.readAllBytes(file.toPath())));
    }
}

我还有src/main/resources/text.txt的text.txt文件

当我按Shift+F10 (类似于按run按钮)时,它编译并运行得很好。

下面是我的POM文件的一部分:

代码语言:javascript
复制
<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.n157239.maven_rss.Main</mainClass>
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
</plugin>

然后,我运行mvn clean compile assembly:single,以便Maven能够生成一个独立的jar文件,其中目标/中有依赖性。

当我从命令行运行jar文件时,会看到一个错误,即没有text.txt文件。

即使我将java代码更改为File file=new File("text.txt");,在从命令行运行jar时仍然会出现错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-21 15:27:46

如果将文件放入/src/main/resources/中,只需指定文件名this.getClass().getClassLoader().getResourceAsStream("YourFile");即可读取。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51951685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档