2

In my RCP 4 app, how can I retrieve the workspace path of the app? I tried some but failed:

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"); //

Please help! Thanks!

greg-449
  • 109,219
  • 232
  • 102
  • 145
aviit
  • 1,957
  • 1
  • 27
  • 50

1 Answers1

1

Platform.getInstanceLocation() should work but you will have to add code in the startup to set a location if one is not set by specifying the -data command line option.

Something like:

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

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

  instanceLoc.set(url, false);
}

I run code like this in the @PostContextCreate method of the LifeCycle class.

Note: Do not call the Location.getURL method until you have set the location as described above. Calling getURL before doing this will set a default of the install location (which is what you testing is showing).

greg-449
  • 109,219
  • 232
  • 102
  • 145