我正在使用Eclipse Luna RCP。在我的插件的代码中,我想要我的工作区的路径。我使用了以下代码:
String basePath = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
这应该给出:
/home/esghsni/avroWorkspace/AvroDesigner
但是它给出了不正确的路径,其中包含存储eclipse rcp的目录的路径。
我检查了所有相关问题但没有帮助。我也尝试解码返回的路径(使用URLDecoder()
),但它完全给出了一些其他路径。
任何形式的帮助将不胜感激。谢谢!!
答案 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时,它会给我正确的工作空间路径(只有一次)。但接下来的执行开始,它开始给我错误的输出。