使用 getClassLoader().getResource() returns null 加载 mmdb 文件,尽管该文件存在于资源中
loading mmdb file using getClassLoader().getResource() returns null although the file exist in the resources
我有这段代码:
class GeoLocator{
public GeoLocator() throws IOException {
final URL url = getClass().getClassLoader().getResource("GeoLite2-Country.mmdb");
if (url == null) {
throw new IOException("File not found!");
}
}
}
在我的主要 class :
public class Main {
public static void main(String[] args) {
try {
GeoLocator geoLocator = new GeoLocator();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我的目标是加载位于我项目资源中的 mmdb 文件。
当我 运行 主函数时,我发现了一个异常:
java.io.IOException: File not found!
at com.a.GeoLocator.<init>(GeoLocator.java:19)
at com.a.Main.main(Main.java:11)
我项目中的文件层次结构如下:
-main
-java
-com.a
GeoLocator.java
Main.java
-resources
GeoLite2-Country.mmdb
我已经尝试 运行 带有绝对和相对路径的代码,但没有成功。
我正在使用 IntelliJ
有什么办法吗?
缺少的东西是:
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/GeoLite2-Country.mmdb</include>
<include>**/apache.log</include>
</includes>
</resource>
</resources>
在 pom.xml 文件中
我有这段代码:
class GeoLocator{
public GeoLocator() throws IOException {
final URL url = getClass().getClassLoader().getResource("GeoLite2-Country.mmdb");
if (url == null) {
throw new IOException("File not found!");
}
}
}
在我的主要 class :
public class Main {
public static void main(String[] args) {
try {
GeoLocator geoLocator = new GeoLocator();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我的目标是加载位于我项目资源中的 mmdb 文件。 当我 运行 主函数时,我发现了一个异常:
java.io.IOException: File not found!
at com.a.GeoLocator.<init>(GeoLocator.java:19)
at com.a.Main.main(Main.java:11)
我项目中的文件层次结构如下:
-main
-java
-com.a
GeoLocator.java
Main.java
-resources
GeoLite2-Country.mmdb
我已经尝试 运行 带有绝对和相对路径的代码,但没有成功。
我正在使用 IntelliJ
有什么办法吗?
缺少的东西是:
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/GeoLite2-Country.mmdb</include>
<include>**/apache.log</include>
</includes>
</resource>
</resources>
在 pom.xml 文件中