有什么办法可以找到相对于 "安装 "java程序的文件夹的路径?
我有一个带有静态方法的类。public static void saveToFile(String fileName)
当我用绝对路径调用它时,它就会工作, 但我真正想要的是相对路径,以找到应用程序运行的地方,以及一个文件夹。
我还没有部署我的应用程序,但现在我想找到一个相对于(Netbeans)项目根目录的路径,以及一个叫做data的文件夹。ProjectName/data/file.dat. 我是否应该使用 File
类,或将其制作成一个 URI
或什么?
请注意,我更希望它是独立于系统的,如果应用程序被部署,它仍然可以工作。最终,(相对)路径名会被存储在 属性 文件。
如果这个问题是重复的,很抱歉,希望得到任何帮助。
怎样才能找到一个相对于 "安装 "java应用程序的文件夹的路径?
操作系统厂商一直在说,很长一段时间 不得 保存在应用程序目录下的文件。
请注意,我更希望它与系统无关,如果应用被部署,仍然可以使用。
而不是把 File
在...中 sub-directory
的 user.home
. 用户家园是应该可以建立一个可以读写的文件对象的地方。 这也是一个跨运行可重现,且与平台无关的地方。
如果你是以jar的形式部署,可以像这样获取当前代码工作的jar文件名和路径。
new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath());
要找到当前工作目录的相对路径,说 new File(".")
.
如果你想知道当前工作目录的绝对路径,你可以写上 new File(".").getAbsolutePath()
或File(".").getAbsoluteFile()`。
我希望这能回答你的问题。如果我没有正确理解你的意思,我很抱歉。
你看这里。
String path = System.getProperty("user.dir");
要得到一个文件的绝对路径,使用new File().getCanonicalFile().
new FileOutputStream(new File(".\\target\\dataset.xml").getCanonicalFile())