Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Ubuntu 無法啟動 Eclipse 解決方案:檢查 JDK 配置、eclipse.ini -vm 參數與工作區權限

編輯:關於 Linux

Ubuntu 上已配置 JDK(java -version、javac 正常),但執行 ./eclipse 無反應或報錯。常見原因:eclipse.ini 未指定正確 JVM、工作區權限不足、GTK 版本衝突、32/64 位元不匹配。本文提供排查清單與解決方案。

環境確認

java -version
# java version "1.7.0_51"
javac -version
# javac 1.7.0_51
echo $JAVA_HOME
# /usr/lib/jvm/java-7-openjdk-amd64

排查步驟

1. 指定 eclipse.ini -vm 參數(最常見解法)

vi /opt/eclipse/eclipse.ini
# 在 -vmargs 之前插入兩行:
-vm
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
# 或 Oracle JDK 路徑:
# -vm
# /usr/lib/jvm/jdk1.7.0_51/jre/bin/java

# 完整範例:
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140603-1326
-vm
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx512m

2. 檢查工作區權限

ls -ld ~/workspace
# 若屬於 root:sudo chown -R $USER:$USER ~/workspace

3. 32/64 位元匹配

  • 64 位元 OS + 64 位元 JDK + 64 位元 Eclipse(檔名含 linux-gtk-x86_64)。
  • 若強制跨架構,需安裝 32 位元庫:sudo apt-get install ia32-libs(舊版)或 libgtk2.0-0:i386 等。

4. GTK 2/3 衝突(Ubuntu 13.10+)

# 環境變數強制使用 GTK 2
export SWT_GTK3=0
./eclipse
# 或修改 eclipse.ini 在 -vmargs 前加入:
-Dorg.eclipse.swt.internal.gtk.cairoGraphics=false

5. 直接指定 JVM 啟動

/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java \
  -jar /opt/eclipse/plugins/org.eclipse.equinox.launcher_*.jar \
  -os linux -ws gtk -arch x86_64 \
  -showsplash /opt/eclipse/splash.bmp \
  -launcher /opt/eclipse/eclipse \
  --launcher.library /opt/eclipse/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140603-1326 \
  -vm /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java \
  -vmargs -Dosgi.requiredJavaVersion=1.6 -Xms40m -Xmx512m

java version 輸出截圖

java 命令行截圖

javac 命令行截圖

環境變量配置截圖

診斷技巧

  • 查看 ~/.eclipse/.../configuration/.log 詳細錯誤堆疊。
  • 執行 ./eclipse -consoleLog -debug 觀察終端機輸出。
  • 檢查 dmesg | tail 是否有 segfault 訊息。
Copyright © Windows教程網 All Rights Reserved