ubuntu 12.04上eclipse中缺少oracle-java7-jdk库

ubuntu 12.04上eclipse中缺少oracle-java7-jdk库,java,eclipse,ubuntu,Java,Eclipse,Ubuntu,我最近安装了ubuntu 12.04最终测试版 从webupd8 ppa安装oracle jdk后,启动eclipse失败,并抱怨缺少共享库 Can't load library: /home/bob/.swt/lib/linux/x86_64/libswt-gtk-3740.so 我四处寻找,发现了这个问题: 正如OP所建议的,我尝试切换到OpenJDK,效果非常好。然而,问题是我正在从事一个不支持openjdk的项目 我也尝试了第二种解决方案(scott的解决方案,它只是在~/.swt/l

我最近安装了ubuntu 12.04最终测试版

从webupd8 ppa安装oracle jdk后,启动eclipse失败,并抱怨缺少共享库

Can't load library: /home/bob/.swt/lib/linux/x86_64/libswt-gtk-3740.so
我四处寻找,发现了这个问题:

正如OP所建议的,我尝试切换到OpenJDK,效果非常好。然而,问题是我正在从事一个不支持openjdk的项目

我也尝试了第二种解决方案(scott的解决方案,它只是在~/.swt/lib/linux/x86_64/)中创建指向/usr/lib/jni/…的符号链接)。Eclipse启动,一切正常,但仍然缺少一些库;这是我尝试运行项目时得到的结果:

Caused by: java.lang.UnsatisfiedLinkError: /tmp/libgdx/1352105074/libjogl_awt-linux64.so: libjawt.so: cannot open shared object file: No such file or directory
我知道libjawt.so在我电脑的某个地方:

$ locate libjawt.so
/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/libjawt.so
/usr/lib/jvm/java-7-oracle/jre/lib/amd64/libjawt.so

但eclipse或java似乎认为库应该放在~/.swt/lib/linux/x86_64中,这不是很奇怪吗?

据我所知,eclipse在启动时默认为它自己的内部JRE。我建议如下:

  • 修改CLASSPATH变量以包含所需库的路径
  • 将JAVA_主页设置为与实际JAVA_主页匹配
  • 通过使用以下信息自定义Eclipse.ini,将Eclipse设置为从所需JVM启动:
  • 另外,您可以在启动Eclipse时指定-classpath选项吗
    据我所知,Eclipse在启动时默认为自己的内部JRE。我建议如下:

  • 修改CLASSPATH变量以包含所需库的路径
  • 将JAVA_主页设置为与实际JAVA_主页匹配
  • 通过使用以下信息自定义Eclipse.ini,将Eclipse设置为从所需JVM启动:
  • 另外,您可以在启动Eclipse时指定-classpath选项吗
    尝试下载最新版本的Eclipse并运行它。出于某种原因,它运行良好。我刚刚抛弃了旧版本的Eclipse。我希望这对其他人有用

    尝试下载最新版本的Eclipse并运行它。出于某种原因,它运行良好。我刚刚抛弃了旧版本的Eclipse。我希望这对其他人有用

    请注意,这里有两个Java运行时。一个用于运行Eclipse本身,另一个用于运行代码。它们不必是相同的

    我建议

    • 使用工作正常的JDK运行Eclipse
    • 手动下载Oracle JDK并将其解压缩到主目录中的文件夹中
    • 告诉Eclipse这个额外的运行时()
    • 将项目配置为使用该JVM。()

    现在,您自己的代码是根据Oracle Java编译并运行的。

    请注意,这里有两个Java运行时。一个用于运行Eclipse本身,另一个用于运行代码。它们不必是相同的

    我建议

    • 使用工作正常的JDK运行Eclipse
    • 手动下载Oracle JDK并将其解压缩到主目录中的文件夹中
    • 告诉Eclipse这个额外的运行时()
    • 将项目配置为使用该JVM。()

    现在,您自己的代码是根据Oracle Java编译并运行的。

    有太多地方可以指定类路径。我试了几次,但都没有成功。不过,有效的方法是运行ldconfig,找到丢失的Libraries右侧的路径。这很有道理。它们不是Java库,而是Linux库。我把问题看得太快了,忘了提到LD_LIBRARY_路径,这可能也起到了作用。下面是一些选项的更多信息:Eclipse可能会使用内部JRE(如果附带的话)(IBM会这样做)。Eclipse.org的默认下载不包含这些内容,而是依赖于默认的java命令。@ThorbjørnRavnAndersen——现在可能是这样,但四年前,当这个问题得到解决时,Eclipse附带了自己的编译器和JRE。请参阅。@ingyhere,即使JRE包含自己的编译器,下载中也不包含JRE。有很多地方需要指定类路径,请自行查找。我试了几次,但都没有成功。不过,有效的方法是运行ldconfig,找到丢失的Libraries右侧的路径。这很有道理。它们不是Java库,而是Linux库。我把问题看得太快了,忘了提到LD_LIBRARY_路径,这可能也起到了作用。下面是一些选项的更多信息:Eclipse可能会使用内部JRE(如果附带的话)(IBM会这样做)。Eclipse.org的默认下载不包含这些内容,而是依赖于默认的java命令。@ThorbjørnRavnAndersen——现在可能是这样,但四年前,当这个问题得到解决时,Eclipse附带了自己的编译器和JRE。请参阅。@ingyhere,即使JRE包含自己的编译器,下载中也不包含JRE。请你自己找一找