我试图访问GeoLiteCity文件,它在我的本地计算机上运行但无法在云上获取路径(Azure)。 文件保存完全符合以下层次结构:
/src/main/resources/database/GeoLiteCity.dat
我的代码:
void getFile() {
if (this.file == null) {
try {
URL url = this.getClass().getClassLoader().getResource("database/GeoLiteCity.dat");
this.file = new File(url.toURI());
System.out.println(file.getPath().toString());
} catch (Exception ex) {
System.out.println(file.getPath().toString(),ex);
}
}
}
答案 0 :(得分:0)
假设代码是在Tomcat上运行的Java WebApp的一部分。根据我的经验,如果您想通过方法this.getClass().getClassLoader().getResource("<the data file path relative to the root classes path>")
获取资源,请确保路径GeoLiteCity.dat
下的数据文件webapps/<your-webapp-name>/WEB-INF/classes/database/
。
如果您的webapp部署在Azure WebApp上,我认为您可以尝试在Azure WebApp上使用数据文件的绝对路径,例如D:/home/site/wwwroot/webapps/<your-webapp-name>/<the data file path>
,并且只能使用new File("<the absolute path of data file>")
。