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

Java 如何在项目中找到绝对路径,java,path,absolute,Java,Path,Absolute,我有一个mavenproject(java) 现在该项目中有一个文件。文件,而不是类文件的对象。(实际上是txt)最后,这个文件将被捆绑在jar中。我想在项目执行期间使用它,我确实需要该文件的绝对路径。 当然,这取决于我使用的计算机。 如果我们讨论的是一个文件对象,我只需要使用myfile.getAbsolutePath来查找absolutepath 在这种情况下,有没有办法找到路径 此文件将绑定到jar中 该文件不再是文件系统中的独立文件。它没有唯一的文件系统路径专门指向它 它是打包后的打包文

我有一个mavenproject(java)

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

在这种情况下,有没有办法找到路径

此文件将绑定到jar中

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

它是打包后的打包文件(类似于zip)的一部分。这是提供和等方法的主要原因

此文件将绑定到jar中

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


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

反射起到了解救作用。您可以这样做:

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

java.io.File file = new java.io.File(url.toURI());
java.net.URL URL=.class.getProtectionDomain().getCodeSource().getLocation();
java.io.File文件=新的java.io.File(url.toURI());

file.toString()
将为您提供绝对路径。但是要谨慎使用,因为在使用
getProtectionDomain()
时存在安全隐患:请检查它在所有平台上都能正常工作。

反射起到了解救作用。您可以这样做:

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

java.io.File file = new java.io.File(url.toURI());
java.net.URL URL=.class.getProtectionDomain().getCodeSource().getLocation();
java.io.File文件=新的java.io.File(url.toURI());

file.toString()
将为您提供绝对路径。但是要谨慎使用,因为使用
getProtectionDomain()
时会有安全隐患:检查它在所有平台上都能正常工作。

部署时,文件会驻留在jar、war、rar o ear文件中吗?部署时,文件会驻留在jar、war、rar o ear文件中吗?在“您的类名”中会使用哪个类?任何您知道在jar中的类,或者与名为YourClassName.class.Well的文件关联的类,我得到一个maven异常。我在考虑直接在linux系统上使用locate来实现这一点——windows是否有类似的方法?这很奇怪。我是在Windows上做的。@newnewbie;我不确定:我相信如果有安全管理器运行,getProtectionDomain()可能会失败。搜索该函数以了解更多详细信息。“您的类名”中会使用哪个类?您知道在jar中的任何类,或者与名为YourClassName.class的文件关联的类。好吧,我得到一个maven异常。我在考虑直接在linux系统上使用locate来实现这一点——windows是否有类似的方法?这很奇怪。我是在Windows上做的。@newnewbie;我不确定:我相信如果有安全管理器运行,getProtectionDomain()可能会失败。谷歌该功能可获取更多详细信息。