希望Eclipse使用特定的config.ini,但设置不同的配置区域

希望Eclipse使用特定的config.ini,但设置不同的配置区域,eclipse,osgi,Eclipse,Osgi,简而言之,我的问题是: 我希望使用一个特定的config.ini文件运行基于eclipse的程序,该文件不在默认目录中,即它不在。/eclipse/configuration/config.ini中,但同时我希望配置区域位于不同的位置,即用户主目录中 原因与使用几个不同的config.ini文件有关,并且保存文件的配置区域是只读的 当启动工具时,使用 ${JAVA_HOME}/bin/java -Dosgi.baseConfiguration.area=$INSTALLATION/$CONFI

简而言之,我的问题是:

我希望使用一个特定的config.ini文件运行基于eclipse的程序,该文件不在默认目录中,即它不在
。/eclipse/configuration/config.ini
中,但同时我希望配置区域位于不同的位置,即用户主目录中

原因与使用几个不同的config.ini文件有关,并且保存文件的配置区域是只读的

当启动工具时,使用

${JAVA_HOME}/bin/java 
-Dosgi.baseConfiguration.area=$INSTALLATION/$CONFIGURATION/eclipse/configuration\
-jar $INSTALLATION/eclipse/plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar \
这在我的config.ini中(除其他外):

我几乎得到了我想要的一切:使用了正确的config.ini文件,工具开始将数据缓存到正确的位置,并且仅在那里。但有一点缺点就是工具无法启动。。。我收到错误消息:

!条目org.eclipse.osgi42010-11-2919:17:06.914
!消息应用程序错误
!堆栈1
java.lang.IllegalStateException:无法获取应用程序服务。确保解析并启动org.eclipse.core.runtime包(请参阅config.ini)。
位于org.eclipse.core.runtime.internal.adapter.eclipseeappluncher.start(eclipseeappluncher.java:74)
位于org.eclipse.core.runtime.adapter.EclipseStarter.run(EclipseStarter.java:369)
在org.eclipse.core.runtime.adapter.EclipseStarter.run(EclipseStarter.java:179)

如果我换成

${JAVA_HOME}/bin/java -Dawt.toolkit=sun.awt.X11.XToolkit \
-Dosgi.configuration.area=$INSTALLATION/$CONFIGURATION/eclipse/configuration \
-jar $INSTALLATION/eclipse/plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar \
该工具工作正常,但开始将数据保存到我的writeprotected区域

我的config.ini文件中的bundle定义没有问题,因为它们在第二种情况下工作

这有几个解决办法,但首先我要试着看看是否有一种方法可以让这项工作像我们希望的那样

更新:根据下面凯恩斯的建议,我发现只有一个bundle被加载,
org.eclipse.osgi_3.6.0.v20100517
。当我在中检查引发异常的eclipse代码时,我发现这一行:

if (failOnNoDefault && runnable == null)
throw new IllegalStateException(EclipseAdaptorMsg.ECLIPSE_STARTUP_ERROR_NO_APPLICATION);

所以我的runnable是空的。不知道为什么,但我认为这表明我需要使用一些变通方法。

首先,您必须添加'osgi.bundles'作为vm参数。错误消息是由于自Eclipse3.4以来,捆绑包没有安装到由捆绑包“org.eclipse.equinox.simpleconfigurator”负责的OSGi框架中

-Dosgi.bundles=file/<eclipsedir>/plugins/org.eclipse.equinox.simpleconfigurator_1.0.200.v20100503.jar@1\:start
-Dosgi.bundles=file//plugins/org.eclipse.equinox.simpleconfigurator_1.0.200.v20100503。jar@1\:开始

谢谢您的回复。对不起,也许我应该说得更清楚些。config.ini文件包含的内容比列出的行还多,我已经指定了其中的所有捆绑包。@Fredrik,好的。您可以尝试在命令行中附加参数“-console-noExit”。然后使用“ss”查看框架中是否安装了其他捆绑包。如何使用config.ini文件加载片段。。相同的@1\:开始?找到解决方案了吗?
-Dosgi.bundles=file/<eclipsedir>/plugins/org.eclipse.equinox.simpleconfigurator_1.0.200.v20100503.jar@1\:start