PAYATHON 2026

Eclipse Classic 3.7 无法安装 ADT,如何解决?

排障赵师傅

结论

这里涉及两个相关问题:

  1. Cannot assign requested address: JVM_Bind 表示 Eclipse 使用的 JVM 无法建立网络连接。原因不一定是代理,也可能是 Eclipse 网络配置、IPv6、Winsock、VPN、杀毒软件或防火墙。
  2. requires 'org.eclipse.gef 0.0.0' 表示 Eclipse Classic 3.7 缺少 GEF。ADT 的离线 archive 通常不包含这类 Eclipse 平台依赖,只导入 ADT archive 无法完成安装。

先恢复 Eclipse 的网络访问,再通过 Indigo 软件仓库安装 GEF 和 ADT。如果必须离线安装,还需要准备与 Eclipse 3.7 对应的 GEF p2 仓库。

检查 Eclipse 的网络设置

打开:

Window > Preferences > General > Network Connections

如果家庭网络没有使用代理,将 Active Provider 设置为:

Direct

检查 HTTP、HTTPS 和 SOCKS,清除残留的代理地址,然后重启 Eclipse。

如果浏览器能访问更新地址,Eclipse 却不能,可以改用 Native,让 Eclipse 读取系统代理设置。只有在明确知道代理服务器地址时才使用 Manual。

还可以在命令提示符中检查 Windows 是否配置了 WinHTTP 代理:

netsh winhttp show proxy

WinHTTP 代理和 Eclipse 自身的代理设置是两套配置。这个命令只能用于判断系统环境,不能代替 Eclipse 中的设置。

强制 JVM 使用 IPv4

旧版 JVM 在部分 Windows 7 网络环境中使用 IPv6 时,可能出现 JVM_Bind。可以在 eclipse.ini 的 -vmargs 后添加:

-vmargs
-Djava.net.preferIPv4Stack=true

如果文件中已经有 -vmargs,只添加下面这一行,不要重复写 -vmargs:

-Djava.net.preferIPv4Stack=true

保存文件,完全退出 Eclipse 后重新启动。

如果需要在 eclipse.ini 中指定 JVM,-vm 必须放在 -vmargs 前面,参数和路径各占一行。例如:

-vm
C:/Program Files/Java/jdk-version/bin/javaw.exe
-vmargs
-Djava.net.preferIPv4Stack=true

jdk-version 是占位符,需要替换成实际的安装目录,不能直接照抄。

修复 Windows 网络栈

如果 Eclipse 和其他 Java 程序都无法建立连接,先关闭 VPN、虚拟网卡相关软件,以及可能拦截 Java 网络请求的安全软件,然后重试。

如果问题仍未解决,以管理员身份打开命令提示符并执行:

netsh winsock reset
ipconfig /flushdns

执行后重新启动 Windows。netsh winsock reset 会重置 Winsock 目录,某些 VPN 或网络过滤软件之后可能需要重新配置,所以不建议一开始就使用这个命令。

还可以检查域名解析是否正常:

nslookup download.eclipse.org

如果域名无法解析,应先排查 DNS、路由器或安全软件。此时修改 Eclipse 安装源并不能解决 JVM_Bind。

从 Indigo 仓库安装 GEF

Eclipse Classic 没有预装 ADT 所需的全部组件。Eclipse 3.7 对应 Indigo 发布仓库,可在以下位置添加:

Help > Install New Software > Add

仓库地址:

http://download.eclipse.org/releases/indigo

添加后,在可用组件中查找并安装 GEF。它在不同的仓库界面中可能显示为 Graphical Editing Framework、GEF 或 GEF SDK。ADT 缺少的是提供 org.eclipse.gef 的组件,不要通过手工复制单个 JAR 来满足依赖。

安装时勾选:

Contact all update sites during install to find required software

这样 p2 才能从 Indigo 仓库查找 ADT 的依赖。安装 GEF 并重启 Eclipse 后,再添加 ADT 更新站点或选择 ADT archive。

Eclipse 自身的更新地址是:

http://download.eclipse.org/eclipse/updates/3.7

这个地址主要提供 Eclipse Platform 更新。ADT 所需的 GEF 等组件通常要从 Indigo 聚合仓库解析,只启用 Eclipse Platform 更新地址仍可能遇到依赖缺失。

完全离线安装的方法

如果暂时无法解决网络问题,只下载 ADT archive 还不够。需要准备:

  • ADT 的 p2 archive;
  • 与 Eclipse 3.7/Indigo 兼容的 GEF p2 update-site archive;
  • 安装过程中提示缺少的其他 Eclipse 依赖仓库。

在 Help > Install New Software 中按以下顺序操作:

  1. 选择 Add > Archive,载入 GEF 的 update-site archive。
  2. 安装 GEF,然后重启 Eclipse。
  3. 再次选择 Add > Archive,载入 ADT archive。
  4. 安装 ADT,确认安装器不再提示缺少 org.eclipse.gef。

archive 必须是 Eclipse p2 能识别的更新站点压缩包。普通源码包、插件源码压缩包或随意下载的 org.eclipse.gef.jar 都不能替代它。也不要直接把 JAR 复制到 plugins 目录,这会绕过依赖解析,可能留下不完整的安装状态。

检查 32 位和 64 位是否匹配

64 位 Eclipse Classic 本身不会导致 org.eclipse.gef 缺失,但 Eclipse 和 JVM 的位数必须一致。可以在命令提示符中检查 Java:

java -version

同时在 Eclipse 中打开:

Help > About Eclipse > Installation Details > Configuration

查看实际使用的 java.home、java.version 和体系结构。64 位 Eclipse 应由 64 位 JVM 启动。位数不匹配通常会导致 Eclipse 无法启动或无法加载本地库,不会引发这里的 GEF 依赖错误,因此这只是环境检查项,不是主要修复方向。

仍然无法安装时

现在重新搭建这套历史环境时,旧更新站点可能已经迁移、归档,或者停止提供部分内容。遇到这种情况,需要使用 Eclipse 官方归档站点或完整保存的 Indigo p2 仓库。具体归档地址以实际可访问的官方页面为准。

排查时,最好使用一份全新解压的 Eclipse Classic 3.7,以免此前失败的安装留下无效仓库或插件状态。按以下顺序检查:

  1. Eclipse 能否访问 Indigo 仓库;
  2. 能否从 Indigo 仓库安装 GEF;
  3. ADT 安装器能否解析 org.eclipse.gef;
  4. Eclipse、JVM 和操作系统的位数是否匹配。

恢复网络访问并让 Indigo 仓库参与依赖解析后,ADT archive 提示缺少 org.eclipse.gef 的问题通常就能解决。

备注:内容仅供参考。