Maven 找不到相对路径
Maven cant find relative path
我的问题是路径在项目中时才有效,但当我尝试运行它在我创建的 .jar 中时似乎不起作用
@Override
public void initialize(URL location, ResourceBundle resources) {
ReadPath("clock/src/main/resources/Csv/Path.txt");
ReadCsv("clock/src/main/resources/Csv/MondayA.csv");
ReadCsvL("clock/src/main/resources/Csv/MondayL.csv");
SetTime();
}
This is how it looks the directories in the project
这是不正确的。您正在使用相对于您的项目路径的 relative 路径。当您创建 jar
文件时,它将无法找到它们,因为您正在搜索的文件 在 jar 文件本身中 .
正确的做法是:
@Override
public void initialize(URL location, ResourceBundle resources) {
ReadPath(this.getClass().getResource("/Csv/Path.txt").toString());
ReadCsv(this.getClass().getResource("/Csv/MondayA.csv").toString());
ReadCsvL(this.getClass().getResource("/Csv/MondayL.csv").toString());
SetTime();
}
现在路径是 jar 路径,文件是从位于 jar 内的 resources
文件夹中读取的。
------------编辑------------
很可能您的 resources
文件夹未标记为目录文件夹。从您的屏幕截图中,我可以看到您正在使用 VS 代码(使用 java 编码时是个坏主意)。有许多 IDE 可以让您的生活变得更简单,并且让您不再头疼。
我还看到一个pom
文件,说明你用的是maven
按照这个these instructions,这是你通过maven标记目录的方式:
<project>
...
<build>
...
<resources>
<resource>
<directory>[your folder here]</directory>
</resource>
</resources>
...
</build>
...
</project>
或者尝试将您的资源文件夹移动到 src/main
.
我的问题是路径在项目中时才有效,但当我尝试运行它在我创建的 .jar 中时似乎不起作用
@Override
public void initialize(URL location, ResourceBundle resources) {
ReadPath("clock/src/main/resources/Csv/Path.txt");
ReadCsv("clock/src/main/resources/Csv/MondayA.csv");
ReadCsvL("clock/src/main/resources/Csv/MondayL.csv");
SetTime();
}
This is how it looks the directories in the project
这是不正确的。您正在使用相对于您的项目路径的 relative 路径。当您创建 jar
文件时,它将无法找到它们,因为您正在搜索的文件 在 jar 文件本身中 .
正确的做法是:
@Override
public void initialize(URL location, ResourceBundle resources) {
ReadPath(this.getClass().getResource("/Csv/Path.txt").toString());
ReadCsv(this.getClass().getResource("/Csv/MondayA.csv").toString());
ReadCsvL(this.getClass().getResource("/Csv/MondayL.csv").toString());
SetTime();
}
现在路径是 jar 路径,文件是从位于 jar 内的 resources
文件夹中读取的。
------------编辑------------
很可能您的 resources
文件夹未标记为目录文件夹。从您的屏幕截图中,我可以看到您正在使用 VS 代码(使用 java 编码时是个坏主意)。有许多 IDE 可以让您的生活变得更简单,并且让您不再头疼。
我还看到一个pom
文件,说明你用的是maven
按照这个these instructions,这是你通过maven标记目录的方式:
<project>
...
<build>
...
<resources>
<resource>
<directory>[your folder here]</directory>
</resource>
</resources>
...
</build>
...
</project>
或者尝试将您的资源文件夹移动到 src/main
.