java中的相对文件路径

时间:2013-09-03 08:53:17

标签: java relative-path

我有这段代码:

 Process p = Runtime.getRuntime().exec(command.toString(), null, 
                                          new File("D:\\Cognity"));

但问题是Cognity目录并不总是在D:\中,它可能在C:\等等。所以我的问题是,如果有给它一个相对路径的方法所以我不必须根据使用该程序的PC更改此代码吗?

3 个答案:

答案 0 :(得分:2)

System.getProperty("user.dir"));返回启动JVM的目录时,您仍无法保证您是否在C:\或D:\ 我的建议是将 Cognity 位置作为-D命令行参数传递,并像这样使用它:

Process p = Runtime.getRuntime().exec(command.toString(), null, new File(System.getProperty("cognity.dir")));

答案 1 :(得分:1)

当然有。

调用System.getProperty("user.dir"));获取当前目录,并连接结果的相对路径。

e.g。

String path=System.getProperty("user.dir"));
path+=realtivePath;

修改

Calrification:

例如: 您要运行的程序始终位于两个文件夹后面,然后是Temp目录。

所以相对路径为..\\..\Temp\prog.exe.

假设在一台计算机上,您的程序位于C:\ Users \ user \ Documents \ Program,因此这是工作目录。

所以:

String path=System.getProperty("user.dir")); //returns the working directory
String realtivePath="\\ ..\\..\\Temp"; //no matter what is the first path, this is the relatuve location to the current dir
path+=realtivePath;
//in this example, path now equals C:\Users\user\Documents\Program\..\..\Temp\prog.exe = C:\Users\user\Temp\prog.exe
Process p = Runtime.getRuntime().exec(command.toString(), null, new File(path));

答案 2 :(得分:0)

您可以使用config-File设置绝对路径,或者在jar文件的相对路径中创建该目录。