Plugin x.y.z is supposed to run on top of a Java project and generate some Java-Code. This code will need classes available in the Plugin\'s jar at build and run time. Hence
We use this to find the location of a class:
public static URL getLocation(final Class cls) {
final ProtectionDomain pd = cls.getProtectionDomain();
final CodeSource cs = pd.getCodeSource();
return cs.getLocation();
}
Not sure where it came from.
The most reliable way when providing a plugin is to use org.osgi.framework.Bundle.getEntry(String)
to get a URL to the jar file, and org.eclipse.core.runtime.FileLocator.toFileURL(URL)
to return the absolute path to the jar in the filesystem.
Then you have a choice, either use that location for the java project classpath, or copy the jar into the java project workspace.
See https://stackoverflow.com/a/8337766/713646 for another example.
PW