构建 jar 后的 Maven 资源文件

发布于 2025-01-06 03:32:08 字数 574 浏览 1 评论 0原文

将 Maven 项目构建到 jar 后,我得到 FileNotFoundException。我知道资源文件在项目构建后位于根目录中,因此我使用它来获取我的文件:

final File file = new File("maps/ParcelsCountyRDMFinal5.shp");

这是例外:

C:\Users\ilija\Desktop\MavenizedCP\cp-map\target>java -jar cp-map-0.0.1-SNAPSHOT
-shaded.jar

Exception in thread "main" java.io.FileNotFoundException: C:\Users\ilija\Desktop
\MavenizedCP\cp-map\target\maps\ParcelsCountyRDMFinal5.shp (The system cannot fi
 nd the path specified)

这里的工作目录显然是我想要运行 jar 的目录。我想工作目录应该是 jar 的根目录。

请在这里帮忙。我做错了什么?

After building maven project into jar, I get FileNotFoundException. I know that resources files are in the root directory after project being built thus I use this to get my file:

final File file = new File("maps/ParcelsCountyRDMFinal5.shp");

Here is the exception:

C:\Users\ilija\Desktop\MavenizedCP\cp-map\target>java -jar cp-map-0.0.1-SNAPSHOT
-shaded.jar

Exception in thread "main" java.io.FileNotFoundException: C:\Users\ilija\Desktop
\MavenizedCP\cp-map\target\maps\ParcelsCountyRDMFinal5.shp (The system cannot fi
 nd the path specified)

The working directory here is obviously the directory from which I want to run jar. I guess that working directory should be root of the jar.

Please help here. What am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清泪尽 2025-01-13 03:32:08

然后您的文件位于您的类路径中。您可以尝试 Final File file = ClassLoader.getSystemResource("maps/ParcelsCountyRDMFinal5.shp").getFile();

Your file is then in your classpath. You can try final File file = ClassLoader.getSystemResource("maps/ParcelsCountyRDMFinal5.shp").getFile();

人心善变 2025-01-13 03:32:08

这就是你应该如何获取 jar 中捆绑的资源文件的绝对路径。

URI fileURI = Thread.currentThread().getContextClassLoader()
                .getResource("ParcelsCountyRDMFinal5.shp").toURI();
filepath = new File(fileURI).getAbsolutePath();

这对我有用..

THis is how u should get the absolute path for a resource file bundled inside the jar.

URI fileURI = Thread.currentThread().getContextClassLoader()
                .getResource("ParcelsCountyRDMFinal5.shp").toURI();
filepath = new File(fileURI).getAbsolutePath();

This works for me..

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文