“加载机械手时出错”

时间:2009-09-10 07:53:17

标签: eclipse plugins

在尝试安装WTP网页编辑器插件时,我在Eclipse Galileo下不断收到以下错误:

java.lang.IllegalStateException: Error while loading manipulator.
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.LazyManipulator.loadDelegate(LazyManipulator.java:54)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.LazyManipulator.getConfigData(LazyManipulator.java:108)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction.installBundle(InstallBundleAction.java:76)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction.execute(InstallBundleAction.java:29)
at org.eclipse.equinox.internal.p2.engine.ParameterizedProvisioningAction.execute(ParameterizedProvisioningAction.java:35)
at org.eclipse.equinox.internal.provisional.p2.engine.Phase.mainPerform(Phase.java:129)
at org.eclipse.equinox.internal.provisional.p2.engine.Phase.perform(Phase.java:72)
at org.eclipse.equinox.internal.provisional.p2.engine.PhaseSet.perform(PhaseSet.java:44)
at org.eclipse.equinox.internal.provisional.p2.engine.Engine.perform(Engine.java:54)
at org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningUtil.performProvisioningPlan(ProvisioningUtil.java:389)
at org.eclipse.equinox.internal.provisional.p2.ui.operations.ProfileModificationOperation.doExecute(ProfileModificationOperation.java:61)
at org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningOperation.execute(ProvisioningOperation.java:37)
at org.eclipse.equinox.internal.provisional.p2.ui.ProvisioningOperationRunner$1.run(ProvisioningOperationRunner.java:94)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

一篇博客称Eclipse Galileo与Java 1.6不兼容(什么??),所以我尝试用Java 1.5运行Eclipse,但这没有帮助。有没有其他人有这个问题,能够绕过它吗?


编辑 BTW,低于错误日志中的错误,它也会显示

session context was:(profile=epp.package.java, phase=org.eclipse.equinox.internal.provisional.p2.engine.phases.Install, operand=null --> [R]javax.mail 1.4.0.v200905040518, action=org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction).

5 个答案:

答案 0 :(得分:8)

您可以尝试遵循bug 277242

中提到的各种建议

同时检查你的eclipse.ini:

  

更一般地说,当我们无法阅读“-startup”时,您看到的错误就会发生,因为我们使用它来定位install.area。

根据Jelle van Geuns在评论中的建议(并由Halfstop确认):

  

我发现一个MacOS有两个文件夹(MacOS和Eclipse),有两组独立的配置文件   每个插件子文件夹中都有一个“org.eclipse.equinox.launcher”启动jar,但版本略有不同。

     

Eclipse可执行文件位于MacOS文件夹中   但eclipse.ini设置为在Eclipse/plugins下查找启动jar,但版本错误。

     

对我有用的解决方案是将startup.jar的两个版本复制到两个插件子文件夹中。

Halfstop确认:

  

我将Eclipse中的所有内容复制到MacOS目录中,这解决了它。

答案 1 :(得分:2)

我今天刚遇到这个问题。 VonC et al 提供的答案有助于定位问题,但并没有完全解决。

就我而言,-startup 中的 MacOS/eclipse.ini 中指定的位置在 ../Eclipse/plugins 文件夹而不是 ../MacOS/plugins 文件夹中查找不正确。

我更正了路径,错误消失了。

答案 2 :(得分:0)

尝试chown -R your_user_name:your_user_name /path/to/eclipe

答案 3 :(得分:0)

尝试编辑 Eclipse/configuration/config.ini

确保osgi.instance.area.default=值是正确的工作空间。这对我有用。

答案 4 :(得分:0)

我不确定上述答案是否足以解决此问题。我发现,使用我们的一些eclipse派生RCP产品,在某些Linux机器上,插件会因为这样的日志条目而失败:

!ENTRY org.eclipse.equinox.p2.engine 4 4 2017-02-23 12:00:49.492
!MESSAGE An error occurred while installing the items
!SUBENTRY 1 org.eclipse.equinox.p2.engine 4 0 2017-02-23 12:00:49.492
!MESSAGE session context was:(profile=TIBCOBusinessStudio-4.0, phase=org.eclipse.equinox.internal.p2.engine.phases.Install, operand=null --> [R]com.tibco.eclipse.p2.installer 1.1.3.20161130, action=org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction).
!SUBENTRY 1 org.eclipse.equinox.p2.engine 4 0 2017-02-23 12:00:49.492
!MESSAGE Error while loading manipulator.
!STACK 0
java.lang.IllegalStateException: Error while loading manipulator.
    at org.eclipse.equinox.internal.p2.touchpoint.eclipse.LazyManipulator.loadDelegate(LazyManipulator.java:59)
    at org.eclipse.equinox.internal.p2.touchpoint.eclipse.LazyManipulator.getConfigData(LazyManipulator.java:108)
    at org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction.installBundle(InstallBundleAction.java:75)
    at org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction.execute(InstallBundleAction.java:32)
    at org.eclipse.equinox.internal.p2.engine.ParameterizedProvisioningAction.execute(ParameterizedProvisioningAction.java:38)
    at org.eclipse.equinox.internal.p2.engine.Phase.mainPerform(Phase.java:183)
    at org.eclipse.equinox.internal.p2.engine.Phase.perform(Phase.java:95)
    at org.eclipse.equinox.internal.p2.engine.PhaseSet.perform(PhaseSet.java:47)
    at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:75)
    at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:44)
    at org.eclipse.equinox.p2.operations.ProvisioningSession.performProvisioningPlan(ProvisioningSession.java:159)
    at org.eclipse.equinox.p2.operations.ProfileModificationJob.runModal(ProfileModificationJob.java:79)
    at org.eclipse.equinox.p2.operations.ProvisioningJob.run(ProvisioningJob.java:177)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

这种情况发生的原因(我怀疑)是配置文件的实际文件名与lazyloader的绝对名称进行比较。在我的情况下,主目录是符号链接,因此两个名称不匹配。解决方案是编辑eclipse.ini(或者你的名字),并确保所有引用eclipse home目录的路径都是完全限定的,不依赖于符号链接。