如何在项目中找到绝对路径

时间:2013-09-10 13:54:11

标签: java path absolute

我有一个mavenproject(java)。

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

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

2 个答案:

答案 0 :(得分:3)

  

此文件将捆绑在jar中。

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

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

答案 1 :(得分: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()时存在安全隐患:检查它是否适用于所有平台。