在Java中查找工作目录的基本路径

时间:2015-08-17 06:17:19

标签: java eclipse

我正在使用Eclipse Luna RCP。在我的插件的代码中,我想要我的工作区的路径。我使用了以下代码:

String basePath = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();

这应该给出:

/home/esghsni/avroWorkspace/AvroDesigner

但是它给出了不正确的路径,其中包含存储eclipse rcp的目录的路径。

我检查了所有相关问题但没有帮助。我也尝试解码返回的路径(使用URLDecoder()),但它完全给出了一些其他路径。 任何形式的帮助将不胜感激。谢谢!!

5 个答案:

答案 0 :(得分:1)

你可以试试这个:

 System.out.println(System.getProperty("user.dir"));

答案 1 :(得分:0)

File f = new File(this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath());

使用此文件对象f获取this类的绝对路径。

答案 2 :(得分:0)

在Eclipse插件中使用:

IPath path = ResourcesPlugin.getWorkspace().getRoot().getLocation();

获取文件系统中工作空间的完整路径。

注意:这必须在插件中运行,它不能在普通的Java程序中工作。

答案 3 :(得分:0)

是,之前的回答是正确的

import java.io.File;

公共等级B {

public static void main (String [] arr)

{
B b=new B();
File f = new File(b.getClass().getProtectionDomain().getCodeSource().getLocation().getPath());
System.out.print(f.getAbsolutePath());
}

}

答案 4 :(得分:0)

感谢您的所有答案! 我刚刚在朋友的笔记本电脑上执行相同的代码,它给出了正确的工作区路径。所以基本上,代码:

String basePath = this.getClass()。getProtectionDomain()。getCodeSource()。getLocation()。getPath();

工作正常。似乎我的笔记本电脑或日食中存在一些问题。

我还发现当我切换eclipse工作区并重新启动eclipse时,它会给我正确的工作空间路径(只有一次)。但接下来的执行开始,它开始给我错误的输出。