我今天从 open-jdk 升级到了 Oracle JDK 1.7。从那时起,我的 eclipse 就无法运行了。当我运行 eclipse 时,我收到以下错误:-
以下是屏幕截图中提到的文件的日志:-
buffer@ankit:~/.eclipse/org.eclipse.platform_3.7.0_155965261/configuration$ cat 1353661258260.log
!SESSION 2012-11-23 14:30:57.677 -----------------------------------------------
eclipse.buildId=I20110613-1736
java.version=1.7.0_09
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_IN
Command-line arguments: -os linux -ws gtk -arch x86_64
!ENTRY org.eclipse.osgi 4 0 2012-11-23 14:31:03.518
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
no swt-gtk-3740 in java.library.path
no swt-gtk in java.library.path
Can't load library: /home/buffer/.swt/lib/linux/x86_64/libswt-gtk-3740.so
Can't load library: /home/buffer/.swt/lib/linux/x86_64/libswt-gtk.so
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:285)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:194)
at org.eclipse.swt.internal.C.<clinit>(C.java:21)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:132)
at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:695)
at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:153)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:95)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
答案1
您也可以尝试 OpenJDK 7。我认为它与 openjdk 兼容。
apt-get install openjdk-7-jdk
编辑
看看这是否对你有帮助 https://stackoverflow.com/questions/10165693/eclipse-cannot-load-swt-libraries
其中提到的解决方案是:对于32位:
ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/
对于 64bt:
ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/
答案2
看起来您正在运行 Eclipse 3.7,根据发行说明,它似乎不支持 Java 7 (1.7.0_09),请尝试 1.6.0_37。
http://www.eclipse.org/eclipse/development/readme_eclipse_3.7.html
答案3
您可以升级到 Juno 来解决您遇到的问题。
为此,您需要从计算机中删除 eclipse 3.7。您也可以重命名它,但如果这样做,您必须非常有条理才能跟踪。
完成此操作后,您可以按照 Juno 发布的完整安装说明进行操作在这个博客上。
这个是我自己写的,当我重新安装操作系统时总会回到它(这种情况很常见),所以我知道它运行良好并且相当简单,但我应该指出这是针对 eclipse 4.2 和 lubuntu 12.10 或 12.04(虽然如果你运行的是 12.10,则需要调整图标)。
我的设置中有 1.7 和 1.6。打开项目时,我会选择所需的路径。
在尝试安装 juno 之前,请注意,如果您的项目设置为 1.6,然后您尝试使用 1.7 而不重新配置构建路径或将其导出到设置为 1.7 的新项目,这也可能是问题的根源,您可能毕竟能够继续使用 3.7。 (我不确定,因为日志文件没有告诉我您做了什么才达到这一点)另外,其他海报关于兼容性的说法可能是正确的,我不确定,但如果您没有尝试过这个(在 stack exchange 的其他地方解释了这一点,但它可能对你也有用所以我会重复一遍以防你还没有尝试过:
当您打开一个项目时,您需要设置环境(由于您可能卸载了 1.6,环境现在已经发生了变化。
如果之前环境已经设置为 1.6 并且您希望在项目上将其设置为 1.7,那么您将需要创建一个执行环境为 1.7 的新项目并导入它。
无论如何,如果您想升级到 juno,链接的说明应该在 ubuntu 上也能正常工作,就像在 lubuntu 上一样,但如果您遇到麻烦,只需询问。