我有一个扩展AbstractUIPlugin
的插件package lsclipse;
public class LSclipse extends AbstractUIPlugin {
有了它,我可以使用以下代码获取状态位置目录。
public static final String baseDir = \
lsclipse.LSclipse.getDefault().getStateLocation().toOSString();
此目录映射到WORKSPACE/.metdata/.plugin/PROJECT
,这很方便
然而,使用实现BundleActivator的插件
package lsclipse;
public class Activator implements BundleActivator {
我无法获得州位置()。
我可以使用Platform.getLocation().toFile().toString();
来获取此插件的工作区,但它是WORKSPACE
的基本目录,而不是WORKSPACE/.metdata/.plugin/PROJECT
。
如何从Activator获取州位置?我的插件是无头RCP,所以我不想(或不能)继承AbstarctUIPlugin。
答案 0 :(得分:1)
org.eclipse.core.runtime.Platform.java
public static IPath getStateLocation(Bundle bundle)
应该为您提供捆绑的数据区域。
答案 1 :(得分:0)
如果您的Activator类支持它,唯一的选择是尝试getEnvironmentInfo()
。通过您回来的EnvironmentInfo实例,您可以找到调用Eclipse时传入的任何参数。如果您正在运行无头,则可以将插件的状态存储位置作为参数传入可接受的目录路径。
答案 2 :(得分:0)
简单地扩展插件而不是AbstractUIPlugin,它没有任何ui依赖关系,但具有您提到的相同方法。