Java 在Eclipse中以Equinox开始Eclipse

Java 在Eclipse中以Equinox开始Eclipse,java,eclipse,osgi,eclipse-rcp,equinox,Java,Eclipse,Osgi,Eclipse Rcp,Equinox,我试图以编程方式在另一个Eclipse中启动Eclipse,并使用config.ini文件中的osgi.bundles=…-参数将插件设置为加载 我试图用EclipseStarter类启动第二个eclipse实例,但出现以下异常: EclipseStarter.setInitialProperties(props); BundleContext context = EclipseStarter.startup(new String[] {}, null); java.lang.IllegalS

我试图以编程方式在另一个Eclipse中启动Eclipse,并使用config.ini文件中的
osgi.bundles=…
-参数将插件设置为加载

我试图用EclipseStarter类启动第二个eclipse实例,但出现以下异常:

EclipseStarter.setInitialProperties(props);
BundleContext context = EclipseStarter.startup(new String[] {}, null);
java.lang.IllegalStateException:平台已在运行

我还尝试启动一个新的Equinox实例:

FrameworkFactory factory = new EquinoxFactory();
Framework newFramework = factory.newFramework(props);
newFramework.start();
但那时什么也不会开始。 这个问题有什么解决办法吗


提前谢谢

您不能在同一JVM中运行另一个Eclipse,您必须创建一个新的JVM并指定一个不同的工作区。第二个实例的工作区在props中通过
-data/osgi.instance.area
指定。因此,启动第二个实例的唯一方法是使用
java-jar org.eclipse.equinox.launcher\u xxx.jar
?或者所有
ILaunchConfiguration
支持来启动它,这是非常灵活但复杂的。