我试图让自己熟悉 maven 并为此目的创建了一个测试项目。我创建了一个简单的类,它只是打印一些东西,从 .txt 文件中读取。我的主要课程是这样的:
public class HelloWorld {
public static void main(String[] args) throws IOException {
String filePath = HelloWorld.class.getClassLoader().getResource("test.txt").getFile();
BufferedReader br = new BufferedReader(new FileReader(filePath));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
}
}
我创建了一个资源文件夹,将其标记为资源根目录,修改了资源模式并从我的项目中打包了一个可执行的 jar。我的项目结构如下所示:
Quickstart
├───.idea
├───src
│ ├───main
│ │ ├───java
│ │ │ └───de
│ │ │ └───mb
│ │ │ └───hello
| | | └───HelloWorld.java
│ │ └───resources
| | └───test.txt
现在我的问题是,当我尝试执行我的 jar 时,我收到以下错误:
Exception in thread "main" java.io.FileNotFoundException:
file:\C:\Users\mb\IdeaProjects\Quickstart\target\Quickstart-1.
0-SNAPSHOT.jar!\test.txt (The filename, directory name, or volume label syntax is incorrect)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at java.io.FileReader.<init>(FileReader.java:58)
at de.mb.hello.HelloWorld.main(HelloWorld.java:15)
我想问题是 .txt 文件在 .jar 中,但是我应该如何声明路径以使其工作?
UYOU
相关分类