拓冰建站拓冰建站
首页 / 资讯中心 / 正文

aarch64 Linux下Eclipse JEE 2023-06安装配置与避坑指南

简介ARM64aarch64架构正广泛应用于树莓派、飞腾、鲲鹏等设备在Linux上配置Java开发环境成为热门需求。Eclipse作为企业级Java IDE其运行依赖于JDK 17即jre17与GTK图形库SWT原生库的架构绑定决定了安装包必须与CPU平台严格匹配。理解这些底层原理才能避免启动崩溃、链接库缺失等问题。正确配置环境后开发者可以高效进行Java Web、Spring Boot及JEE项目开发并利用EGit管理代码版本。在部署阶段Tomcat集成常因JAVA_HOME指向JRE而引发“找不到或无法加载主类 org.apache.catalina.startup.bootstrap”的报错需要准确定位环境变量。本文从aarch64平台的特性出发完整梳理了Eclipse JEE 2023-06的下载、安装、JDK配置、GTK依赖、Tomcat联动及高频故障排查助力ARM设备成为稳定的Java开发机。 拿到eclipse-jee-2023-06-R-linux-gtk-aarch64.tar.gz这个包名搞过一阵子 ARM Linux 开发的人应该都有点感觉——这不就是一整套“在非 x86 机器上折腾 Java 开发环境”的起点吗。我自己最早是在树莓派 4 上试 Eclipse后来又在飞腾和鲲鹏的服务器上配过同样的环境踩过的坑说多不多但每一个都足够让人卡上一晚上。这篇就把从下载、安装、JDK 配置、GTK 依赖到常见报错的完整过程写清楚尤其适合刚拿到 aarch64 机器、准备在上面做 Java Web 或 JEE 开发的人。1. 文件名不是乱码先搞清楚你到底下载了一个什么版本1.1 逐段拆解 eclipse-jee-2023-06-R-linux-gtk-aarch64.tar.gz很多人下载 Eclipse 从来不看文件名直接点网页上的 Download下载完就解压结果就是各种莫名其妙的问题。这个包名看着长其实每段都有明确含义拆开看eclipse-jee这是 Eclipse IDE for Enterprise Java and Web Developers也就是 Java EE / Jakarta EE 开发版。它自带 WTPWeb Tools Platform、Maven、Git、数据库工具、XML 编辑器、服务器插件等一大堆东西适合做 Servlet、JSP、Spring MVC、Spring Boot 这类 Web 项目。普通 Java 开发的话用eclipse-java就够了但 JEE 版本向下兼容做 Web 开发直接选它省事。2023-06版本代号。Eclipse 每年 6 月和 12 月各发布一个版本2023-06 对应内部的 4.28 版本。RRelease正式发布版。Eclipse 在正式版之前还有 MilestoneM和 Release CandidateRC阶段R 就是最终稳定版。linux目标操作系统平台。gtk图形界面库使用 GTK。Eclipse 的 SWTStandard Widget Toolkit在不同平台上有不同实现Linux 上主要依赖 GTK2/GTK3新版基本都是 GTK3。aarch64CPU 架构也就是 ARM 64 位通常叫 ARM64。对应的是x86_64。tar.gz压缩包格式解压即用不需要安装程序。这几点搞清楚之后你在下载的时候就知道自己该选什么了。比如说你的机器是 AMD64 或 Intel 64 位那就该下x86_64版本如果你用的是树莓派 4/5、飞腾、鲲鹏这些 ARM 平台的机器并且系统是 64 位那才选aarch64。1.2 为什么架构必须对得上SWT 原生库的问题Eclipse 的界面依赖 SWT而 SWT 底层有大量.so原生库也就是 JNI 调用的 C/C 代码。这些库在编译时就跟 CPU 架构绑定了x86_64 编译出来的.so在 aarch64 上根本无法加载。我见过有人把 x86_64 版本的 Eclipse 拷到 ARM 机器上解压后启动直接报An error has occurred. See the log file看.log才发现是 SWT 库加载失败因为里面全是 x86_64 格式的二进制文件。aarch64 内核虽然能识别文件但 loader 在加载时会直接拒绝执行报“Exec format error”。所以第一原则是下载页面选不选对直接影响你能不能打开 IDE。这个比版本新旧重要得多。Eclipse 从很早起就提供 aarch64 的 Linux 版本但如果你拿到的是旧包务必确认是aarch64而不是armarm 是 32 位或x86_64。1.3 哪些真正是 aarch64 的机器可能有人对 aarch64 没概念列几个常见场景树莓派 4 / 5 安装 64 位系统Ubuntu、Debian飞腾 FT-2000、鲲鹏 920 等 ARM 服务器Apple SiliconM1/M2上通过虚拟机或容器跑 Linux ARM64部分国产云主机的 ARM 实例嵌入式开发时的 ARM 开发板比如 RK3588、Jetson 系列这些机器上用uname -m可以确认架构。如果在uname -m输出里看到aarch64那你的系统就是 ARM64。如果看到的是armv7l那是 32 位 ARM不能跑 aarch64 的包。2. 动手前先搞定 JDK 和 GTK 依赖2.1 JDK 版本为什么 Eclipse 2023-06 离不开 JDK 17Eclipse 本体是用 Java 写的所以启动它需要 JVM。从 2022 年 9 月的 4.26 版本开始Eclipse 官方规定运行环境必须是 Java 17 以上。所以 2023-064.28这个版本你装 JDK 8 或 JDK 11 都不行启动时会直接提示No Java virtual machine was found after searching the following locations:很多人在热词里搜jre17其实就是因为这个版本的限制。但注意Eclipse 运行时需要 JDK 17 或者 JRE 17而你在 Eclipse 里编译项目时可以用其他版本比如项目用 JDK 8 编译Eclipse 会调用你配置的 JRE 来执行编译器这个和 IDE 本身运行的 JVM 是两回事。安装 JDK 17 在 Debian/Ubuntu 系包括树莓派 OS 的 64 位版上很简单sudo apt update sudo apt install -y openjdk-17-jdkRHEL/CentOS 等发行版sudo dnf install -y java-17-openjdk-devel装完以后设置环境变量我习惯写进/etc/profile.d/java.shexport JAVA_HOME/usr/lib/jvm/java-17-openjdk-arm64 export PATH$JAVA_HOME/bin:$PATH不同发行版 JDK 安装路径不同通过readlink -f $(which java)或update-alternatives --list java可以查到实际路径。配置好之后执行java -version确认输出的版本是 17 且架构包含 aarch64 或 arm64比如openjdk version 17.0.10 2024-01-16 OpenJDK Runtime Environment (build 17.0.107-Debian-1) OpenJDK 64-Bit Server VM (build 17.0.107-Debian-1, mixed mode, sharing)这里只要显示的位数是 64-Bit 且能正常打印版本一般就没问题。2.2 GTK 运行库图形界面能不能起来就看这几个包Eclipse 在 Linux 下使用 GTK3 作为窗口组件底层系统里如果缺 GTK 相关运行库启动时就会报类似error while loading shared libraries: libgtk-3.so.0: cannot open shared object file解决方法是在 Ubuntu/Debian 上安装这些包sudo apt install -y libgtk-3-0 libgtk-3-bin libwebkit2gtk-4.0-37 libcanberra-gtk3-module libxtst6 libxrender1 libcups2其中libwebkit2gtk是为 Eclipse 内置浏览器准备的可选依赖没有它部分功能会不可用但 IDE 不会崩。libcanberra-gtk3-module负责系统提示音没装的话有时会有一条关于 canberra 的警告不影响使用。验证 GTK3 是否就绪pkg-config --modversion gtk-3.0如果输出了版本号比如3.24.37那就没问题。这里顺带说一句热词里出现的adw gtk、windows 10 gtk theme属于界面美化范畴跟 Eclipse 能否运行没有关系。如果你只是想调主题Eclipse 有自己的外观设置在Window Preferences General Appearance里改主题样式就行完全没有必要去动系统 GTK 主题改坏了反而影响所有 GTK 程序。3. 下载、解压与首次启动的完整实操3.1 选择下载镜像和校验Eclipse 官方下载地址默认可能比较慢建议从镜像站下载。Eclipse 的官方镜像列表页会列出全球镜像挑访问速度快的用。下载命令示例wget https://mirrors.tuna.tsinghua.edu.cn/eclipse/technology/epp/downloads/release/2023-06/R/eclipse-jee-2023-06-R-linux-gtk-aarch64.tar.gz我一般会顺手下载对应的.sha512校验文件核对一下哈希值防止下载过程中损坏sha512sum eclipse-jee-2023-06-R-linux-gtk-aarch64.tar.gz把输出的哈希值和官方页面上的比对一致再继续。这个习惯帮我避免过至少两次“解压后启动各种不明原因崩溃”的问题——文件没下完整解压过程居然不报错但运行起来就缺库非常坑。3.2 解压位置和权限一个容易翻车的细节Eclipse 是绿色软件解压即用不需要 sudo 安装。但解压到哪个目录权限怎么给有讲究。我一开始为了图省事直接sudo tar -xzf eclipse-jee-2023-06-R-linux-gtk-aarch64.tar.gz -C /opt/然后在/opt/eclipse下启动结果插件安装、更新配置目录需要写权限时全都失败。Eclipse 的配置目录虽然默认在~/.eclipse但安装插件时它需要往自身安装目录的plugins和features目录里写文件。普通用户没有/opt/eclipse的写权限就会报一堆 IO 错误。正确做法有两种第一种解压到用户目录下mkdir -p ~/apps tar -xzf eclipse-jee-2023-06-R-linux-gtk-aarch64.tar.gz -C ~/apps/然后直接运行~/apps/eclipse/eclipse第二种如果就是要放到/opt那解压完把所有权交给当前用户sudo chown -R $USER:$USER /opt/eclipse我个人更推荐第一种。原因很简单Eclipse 本身就是一个用户级工具装到自己的目录里不会跟系统包管理冲突plugins目录的写权限也天然可用。特别是你后续要用 Eclipse Marketplace 装插件、升级组件写权限齐全能省掉不少麻烦。解压完成后验证一下目录结构确认有eclipse可执行文件、plugins和features目录存在。有时候解压被中断目录不完整启动时会报“The Eclipse executable launcher was unable to locate its companion shared library”这类错误这时候重新完整解压一次就好。3.3 首次启动、工作区和 -vm 参数启动 Eclipsecd ~/apps/eclipse ./eclipse首次启动会要求你选择 Workspace 目录。工作区是用来存项目、配置和缓存的地方能单独放在和 Eclipse 安装目录无关的位置比如~/workspace。不要放到/tmp下重启就没了也不建议放到网络磁盘上I/O 慢会影响 IDE 响应。如果启动时报找不到 Java 虚拟机最好显式在eclipse.ini里指定 Java。用文本编辑器打开~/apps/eclipse/eclipse.ini在-vmargs之前加上-vm /usr/lib/jvm/java-17-openjdk-arm64/bin/java完整的eclipse.ini结构大致是这样-startup plugins/org.eclipse.equinox.launcher_1.6.600.v20230605-0921.jar --launcher.library plugins/org.eclipse.equinox.launcher.gtk.linux.aarch64_1.2.700.v20230511-0400 -product org.eclipse.epp.package.jee.product -showsplash org.eclipse.epp.package.jee --launcher.defaultAction openFile -vm /usr/lib/jvm/java-17-openjdk-arm64/bin/java --launcher.appendVmargs -vmargs -Dosgi.requiredJavaVersion17 -Xms256m -Xmx2048m注意-vm和路径要分两行写这行位置要放在-vmargs前面否则不生效。实际路径以你的机器为准先用readlink -f $(which java)查一下。在 2023-06 这个版本里发行时带的 launcher 片段是org.eclipse.equinox.launcher.gtk.linux.aarch64_开头的如果解压的包是 aarch64 版本这里自然匹配。万一你发现里面的 launcher 是 x86_64 的说明包下错了重新下载。3.4 创建桌面快捷方式启动正常后为了以后方便创建桌面入口文件~/.local/share/applications/eclipse.desktop[Desktop Entry] TypeApplication NameEclipse JEE 2023-06 Icon/home/你的用户名/apps/eclipse/icon.xpm Exec/home/你的用户名/apps/eclipse/eclipse Terminalfalse CategoriesDevelopment;IDE;这样在桌面环境的程序菜单里能直接搜到 Eclipse。Exec 路径写绝对路径不要用~/简写部分桌面环境不展开。4. JEE 开发环境联动Tomcat、Spring Boot 和 Git4.1 配置 TomcatUse custom location 到底改什么JEE 版 Eclipse 自带 Server 视图在里面可以配置 Tomcat。右键 Servers 视图空白区域选 New Server然后选对应版本的 Tomcat比如 Apache Tomcat v9.0。这里有一个配置选项叫Server runtime environment点进去之后能看到Use custom location复选框。很多第一次用的人搞不懂这个选项是什么意思。默认情况下Eclipse 把 Tomcat 实例的部署目录放在它的内部工作区里你对 Tomcat 的修改部署的项目、配置的上下文都会写到工作区的临时目录。勾选Use custom location是让你指定一个自己的目录作为 Tomcat 的server目录和部署目录这样不会污染工作区也方便查找部署产物。我一般会勾选它然后把位置设置为/home/用户名/servers/apache-tomcat-9.0.85这样 Servers 视图里的 Tomcat 配置实际是独立的不会因为你清理工作区缓存而丢失。注意这个目录不要直接指向 Tomcat 安装目录本身因为 Eclipse 会往里面写覆盖文件直接写到安装目录容易把原装配置弄乱万一想还原还得重新解压。配置完成后启动 Tomcat在浏览器访问http://localhost:8080如果能出现 Tomcat 默认页面说明联动成功。4.2 热词里的“找不到或无法加载主类 org.apache.catalina.startup.bootstrap”这个问题经常出现在从命令行启动 Tomcat 或 Eclipse 内嵌 Tomcat 时报错信息很经典错误: 找不到或无法加载主类 org.apache.catalina.startup.Bootstrap发生原因十有八九是JAVA_HOME或JRE_HOME指向了 JRE而不是完整的 JDK。Tomcat 启动脚本catalina.sh需要调用java命令并且需要JAVA_HOME/bin/javac或者至少标准的类库环境。如果JAVA_HOME指向一个不存在或者只含 JRE 的路径就会找不到 Bootstrap 类。排查步骤可以这样echo $JAVA_HOME ls -l $JAVA_HOME/bin/java如果为空Tomcat 会尝试自己找默认 Java如果 Java 装的是 JRE 而不是 JDK最好改成 JDK 路径。另外还有一个容易忽略的点是CLASSPATH里可能有旧版本的servlet-api.jar和 Tomcat 的类冲突但这个一般不会报 Bootstrap 找不到更多是NoClassDefFoundError。真正 Bootstrap 找不到优先检查 JAVA_HOME。如果你是在 Eclipse 里启动 Tomcat 出现这个报错那还要看 Eclipse 的 Runtime Environment 配置里 JRE 是否选对了。在Window Preferences Server Runtime Environments里选中 Tomcat点 Edit看一下 JRE 是不是选择了 JDK 17 而不是默认的 JRE。这里选错的话Eclipse 使用 Tomcat 时会用不完整的 JRE 来启动很容易复现这条错误。4.3 直接创建 Spring Boot 项目和 Git 配置2023-06 版本的 JEE 版自带 Spring Tools 插件可能需要自己装因为 Spring 官方从 Eclipse Marketplace 分发更快的办法是装好之后在 Help Eclipse Marketplace 里搜索 “Spring Tools 4”安装 Spring Tools 4也就是原来的 STS。装完后File New Project 里会出现 Spring Boot 和 Spring Starter Project 的入口。另外Eclipse 自带 EGit支持 Git 集成。热词里出现了eclipse配置git其实就是 Window Preferences Team Git 里配置用户信息user.name: 你的名字 user.email: 你的邮箱然后右键项目 Team Share Project 就能把项目交给 Git 管理。有几个常用快捷键可以记住CtrlShiftF格式化代码CtrlD删除当前行Ctrl/注释/取消注释。在 Linux 下如果你的键盘习惯不同可以在 Preferences Keys 里改。5. 高频报错排查与 aarch64 避坑心得5.1 GTK 相关库加载失败的完整解决记录在最小化安装的 Linux 服务器上装 Eclipse最容易缺 GTK 库。我遇到过三个典型报错error while loading shared libraries: libgtk-3.so.0 error while loading shared libraries: libX11.so.6 error while loading shared libraries: libcanberra-gtk3.so.0对应解决方案依次是sudo apt install -y libgtk-3-0 sudo apt install -y libx11-6 sudo apt install -y libcanberra-gtk3-module如果你不确定缺哪些库可以用ldd查看 Eclipse 原生库的依赖针对 aarch64 库ldd ~/apps/eclipse/plugins/org.eclipse.equinox.launcher.gtk.linux.aarch64_1.2.700.v20230511-0400/native/libswt-gtk-*.so这个输出会列出所有动态库的依赖状态如果有not found缺哪个装哪个。我在鲲鹏服务器上就是这样定位出缺了libxtst.so.6的。5.2 arm64 aarch64 物理内存相关的困惑热词里出现了“arm64 aarch64 物理内存 memblock buddy slab kmalloc vmalloc”这其实是 Linux 内核内存管理的内容跟 Eclipse 本身没有直接关系。但很多人会问为什么 ARM 机器上 Eclipse 有时候明显比 x86 上更卡。实际上 aarch64 平台的 Java 性能已经相当不错Eclipse 卡不卡更大概率是内存参数没调好。默认eclipse.ini里的-Xmx可能只有 512m 或 2048m如果你本机内存够大比如 16G可以适当调高到 4G。注意不要超过物理内存太多否则频繁 GC 反而更卡。常用的内存参数组合-Xms512m -Xmx4096m -XX:UseG1GC -XX:UseStringDeduplicationUseStringDeduplication在 JVM 里真能帮上忙尤其是像 Eclipse 这种有大量字符串常量的应用重复字符串会明显减少。另外如果你在远程服务器上跑 Eclipse不推荐直接在上面操作建议用 X11 转发或 VNC。如果延迟高Eclipse 界面会让人觉得特别卡但这其实是网络问题。5.3 其他工具在 aarch64 上的兼容性很多 Java 工具号称“纯 Java、跨平台”但内部如果带 JNI 原生库在 aarch64 上就会出问题。典型的就是热词里提到的 Kettledata-integration运行./pan.sh时报错This Linux platform [aarch64] is not supported这不是配置问题而是工具本身没有给 aarch64 提供原生 SWT 库或其他动态库。遇到这种问题要么找该工具的 ARM64 版本要么换到 x86_64 的机器上跑。在 aarch64 机器上强行折腾纯属浪费时间。Eclipse 本身有 aarch64 版本所以作为 IDE 没问题。但要在 Eclipse 里装第三方插件时也要留意插件是否包含原生库。大多数 Java 插件是纯字节码没问题但像某些反编译插件比如 jad 相关、特定数据库客户端插件可能有 x86_64 的.so装上去之后在 aarch64 上会加载失败。5.4 问题排查速查表现象原因解决方向启动提示 No Java virtual machine was foundJAVA_HOME 未配置或版本低于 17安装 JDK 17配置 JAVA_HOMEeclipse.ini 里加 -vm启动报 libgtk-3.so.0 找不到缺少 GTK3 运行库apt/dnf 安装 libgtk-3-0 等依赖双击 eclipse 没有反应可能是文件完整性问题、权限问题校验 sha512、检查 plugins 目录是否存在、命令行启动看输出启动后崩溃或闪退常见是内存不足或 SWT 原生库不匹配确认包是 aarch64增大 -Xmx检查系统内存Tomcat 报找不到主类 BootstrapJAVA_HOME 指向 JRE 或路径错误确保 JAVA_HOME 指向完整 JDKEclipse Runtime 配置选 JDK插件安装失败安装目录无写权限解压到用户目录或 chown 目录给当前用户5.5 插件推荐与性能小技巧在 ARM 环境下装插件我建议先试试 Eclipse Marketplace 里直接安装的大部分都很顺利。常用插件有Enhanced Class Decompiler反编译 .class 文件看第三方库源码很方便支持 FernFlower、CFR 等多种反编译器纯 Java 实现aarch64 没问题。Eclipse Memory AnalyzerMAT分析堆转储文件排查内存泄漏本身也是纯 Java 工具在 aarch64 上可以跑。JasperReports 插件做报表开发时用前面热词里有装的时候注意版本兼容优先选与 2023-06 匹配的版本。关于性能还有一个实际体验aarch64 机器如果在启动 Eclipse 时出现桌面动画掉帧、窗口缩放卡顿而你又用不到自带浏览器功能可以在eclipse.ini的-vmargs后面加一行-Dorg.eclipse.swt.internal.gtk.disableBrowsertrue这能减少 WebKit 初始化带来的开销让 IDE 启动更快。当然如果你要预览 HTML 或开发前端资源就别加这个参数。我自己实际用下来aarch64 版本 Eclipse 从 2023-06 开始已经非常稳定日常写代码、跑 Tomcat、调试 Spring Boot 项目都没有什么明显短板。唯一要记住的就是下载时认准aarch64后缀安装前装好 JDK 17启动前确认 GTK 库齐全。这三步对了后面基本一路顺畅。本文还有配套的精品资源点击获取
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门