【发布时间】:2022-07-07 20:50:55
【问题描述】:
我正在尝试使 Eclipse 插件(最初为 Eclipse Neon 和 Java 8 开发)工作,但无法在目标平台中加载。我的系统配置如下:
- 机器:2021 MacBook Pro (M1 Pro)
- Java 版本:Java SE 17.0.1(也尝试过 JDK 8 Temurin)
- Eclipse 2021-12 (4.22.0)(虽然我也尝试在这台机器上安装 Eclipse Neon 并遇到了同样的问题)
当我尝试加载目标平台(包含在帖子底部)时,我收到以下错误:
Problems occurred while resolving the target contents
Cannot complete the install because one or more required items could not be found.
Cannot satisfy dependency:
From: Equinox p2, Provisioning for IDEs. 2.2.201.v20161124-1529 (org.eclipse.equinox.p2.user.ui.feature.group 2.2.201.v20161124-1529)
To: org.eclipse.equinox.p2.iu; org.eclipse.equinox.p2.core.feature.feature.group [1.3.201.v20161115-1950,1.3.201.v20161115-1950]
Cannot satisfy dependency:
From: Eclipse Platform 4.6.2.M20161124-1400 (org.eclipse.platform.ide 4.6.2.M20161124-1400)
To: org.eclipse.equinox.p2.iu; org.eclipse.equinox.p2.user.ui.feature.group [2.2.201.v20161124-1529,2.2.201.v20161124-1529]
Missing requirement for filter properties ~= $0: Equinox p2, headless functionalities 1.3.201.v20161115-1950 (org.eclipse.equinox.p2.core.feature.feature.group 1.3.201.v20161115-1950) requires 'org.eclipse.equinox.p2.iu; org.eclipse.equinox.security.macosx [1.100.200.v20130327-1442,1.100.200.v20130327-1442]' but it could not be found
Software being installed: Eclipse Platform 4.6.2.M20161124-1400 (org.eclipse.platform.ide 4.6.2.M20161124-1400)
目标平台是:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.8"?>
<target name="visuflow" sequenceNumber="42">
<locations>
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.platform.ide" version="4.6.2.M20161124-1400"/>
<unit id="org.eclipse.pde.feature.group" version="3.12.2.v20161124-1400"/>
<unit id="org.eclipse.pde.source.feature.group" version="3.12.2.v20161124-1400"/>
<unit id="org.eclipse.rcp.feature.group" version="4.6.2.v20161124-1400"/>
<unit id="org.eclipse.rcp.source.feature.group" version="4.6.2.v20161124-1400"/>
<repository location="http://download.eclipse.org/eclipse/updates/4.6"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.apache.commons.lang" version="2.6.0.v201404270220"/>
<unit id="org.apache.commons.lang.source" version="2.6.0.v201404270220"/>
<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20160520211859/repository/"/>
</location>
</locations>
<implicitDependencies>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.shell"/>
<plugin id="org.eclipse.core.net"/>
<plugin id="org.eclipse.equinox.console"/>
<plugin id="org.eclipse.ui.ide"/>
<plugin id="org.eclipse.pde.runtime"/>
<plugin id="org.eclipse.equinox.ds"/>
<plugin id="org.eclipse.ui.ide.application"/>
<plugin id="org.apache.felix.gogo.runtime"/>
</implicitDependencies>
<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Eclipse Temurin 8 [1.8.0_312]"/>
</target>
提前感谢您的帮助。
编辑:
- @greg-449 正确地指出了冲突的架构。我最初是在 aarch64 上运行的,但是当我下载 x86_64 Eclipse/Java 时,插件解决了。但是,现在我有一个不同的问题,仍然与冲突的架构有关。尝试启动我的插件时:
/Users/austin/eclipse-workspace/visuflow/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/132/0/.cp/libswt-cocoa-4628.jnilib: dlopen(/Users/austin/eclipse-workspace/visuflow/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/132/0/.cp/libswt-cocoa-4628.jnilib, 0x0001): tried: '/Users/austin/eclipse-workspace/visuflow/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/132/0/.cp/libswt-cocoa-4628.jnilib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/lib/libswt-cocoa-4628.jnilib' (no such file)
【问题讨论】:
-
org.eclipse.equinox.p2.iu表示 p2 安装程序“安装单元”——插件或功能。缺少的是org.eclipse.equinox.security.macosx插件。 -
我注意到您使用的是 M1 Mac - 您使用的是 aarch64 Java / Eclipse 吗?较旧的目标平台将只有 x86_64 版本的缺失插件。
-
@greg-449 你是对的,下载并使用 Eclipse 和 Java 的 x86_64 版本解决了这个问题。但是,现在我遇到了 SWT 问题(请参阅上面的编辑),这似乎也是由架构不匹配引起的。
-
该消息看起来像是您正在尝试使用 aarch64 Java 运行 x86_64 rcp - Java 和 RCP 必须相同。如果你想使用 aarch64 运行,你需要使用当前的 Eclipse 构建,而不是 4.6,它是 16 个版本的旧版本。