1

我有一个 mavenproject (java)。

现在该项目中有一个文件。一个文件,而不是 File 类的对象。(实际上是txt)最后,这个文件将被捆绑在jar中。我想在项目执行期间使用它,我确实需要该文件的绝对路径。当然,这取决于我使用的计算机。如果我们谈论的是 File 对象,我会简单地使用 myfile.getAbsolutePath 找到绝对路径。

在这种情况下还有办法找到路径吗?

4

2 回答 2

3

此文件将捆绑在 jar 中。

文件不再是文件系统上的独立文件。它没有唯一指向它的唯一文件系统路径。

打包后的打包文件(类似于 zip)的一部分。这就是提供class.getResourceAsStream()classLoader.getResourceAsStream()等方法的主要原因。

于 2013-09-10T13:57:02.420 回答
2

反射来拯救。你可以这样做:

java.net.URL url = <your class name>.class.getProtectionDomain().getCodeSource().getLocation();

java.io.File file = new java.io.File(url.toURI());

file.toString()会给你绝对路径。getProtectionDomain()但请谨慎使用,因为使用: 检查它是否适用于您的所有平台时存在安全隐患。

于 2013-09-10T14:01:08.903 回答