如何在 RCP 4 应用程序中检索当前工作区路径?

How to retrieve current workspace path in RCP 4 app?

在我的 RCP 4 应用程序中,如何检索应用程序的工作区路径?我尝试了一些但失败了:

ResourcesPlugin.getWorkspace().getRoot(); //Cannot used in RCP 4 app
URL fileURL = FileLocator.find(Platform.getProduct().getDefiningBundle(),new Path("/"), null); //is not workspace
Location instanceLocation = Platform.getInstanceLocation(); // the same as getInstallLocation()
String s = System.getProperty("eclipse.workspace"); //

请帮忙!谢谢!

Platform.getInstanceLocation() 应该可以工作,但如果未通过指定 -data 命令行选项设置位置,则必须在启动时添加代码以设置位置。

类似于:

Location instanceLoc = Platform.getInstanceLocation();
// TODO check for null

if (!instanceLoc.isSet()) {
  URL url = .... work out a location for the workpace 

  instanceLoc.set(url, false);
}

我 运行 在 LifeCycle class 的 @PostContextCreate 方法中编写了这样的代码 class。

注意:在按上述方法设置位置之前,请勿调用 Location.getURL 方法。在执行此操作之前调用 getURL 将设置安装位置的默认值(这是您测试显示的内容)。