安装JDK后无法在Ubuntu 11.04中安装JAVA EE

时间:2011-09-20 10:12:00

标签: java java-ee java-ee-6 ubuntu-11.04

我完全是Ubuntu和Java的新手。我设法使用终端安装JDK 1.6。我甚至可以运行一个简单的HelloWorld。我的问题是每当我尝试安装java_ee Im时出错:

java.lang.UnsatisfiedLinkError: no Terminal in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681)
    at java.lang.Runtime.loadLibrary0(Runtime.java:840)
    at java.lang.System.loadLibrary(System.java:1047)
    at charva.awt.Toolkit.<clinit>(Toolkit.java:895)
    at charva.awt.Window.init(Window.java:62)
    at charva.awt.Window.<init>(Window.java:58)
    at charva.awt.Frame.<init>(Frame.java:32)
    at charvax.swing.JFrame.<init>(JFrame.java:34)
    at charvax.swing.JFrame.<init>(JFrame.java:30)
    at org.openinstaller.util.ui.ChaxStandaloneSplash.<init>(ChaxStandaloneSplash.java:91)
    at org.openinstaller.core.Orchestrator.main(Orchestrator.java:428)
    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:616)
    at org.openinstaller.core.EngineBootstrap.main(EngineBootstrap.java:208)
SEVERE INTERNAL ERROR: no Terminal in java.library.path

老实说,我对自己的所作所为并不了解。请帮我解决一下这个。提前谢谢。

5 个答案:

答案 0 :(得分:2)

该堆栈跟踪显示错误发生在charva类上。 charva需要一个名为Terminal的库。

来自charva's site

For permanent installation, you just need to ensure that the directory containing 
the libTerminal.so library file is included in your library search path, which is
specified as follows:
· On Linux and Solaris it is specified by the environment variable LD_LIBRARY_PATH

因此,请确定您是否libTerminal.so,以及LD_LIBRARY_PATH是否确实指定了它。

添加,这是导致此失败的源代码。

    static {
        // ...
        System.loadLibrary("Terminal");
        Toolkit.init();     // call native function to initalize ncurses.
    }

查看此相关问题可能也会有所帮助:Exception in thread “main” java.lang.UnsatisfiedLinkError: no Terminal in java.library.path

更新如果您没有libTerminal.so,请查看charva's site,然后按照charva的安装说明操作。您可以在其中构建libTerminal.so

答案 1 :(得分:1)

看起来Java需要一个名为Terminal的本地库来运行。这看起来像一个错误的库路径。

  

如果遇到运行时错误“java.lang.UnsatisfiedLinkError:no xxx in   java.library.path“,这意味着JRE无法找到您的原生   库在运行时。更简单的调试方法是打印出来   “java.library.path”的内容来自   的System.out.println(System.getProperty( “的java.library.path”))。你可以   通过命令行VM选项设置本机库路径   -Djava.library.path = XXX。

答案 2 :(得分:1)

我刚遇到同样的问题。问题似乎是Glassfish安装程序找不到正确的JAVA_HOME位置。您可以使用-j标志在安装程序中手动设置此项(安装程序脚本将其传递给glassfish安装程序)。

运行以下命令允许glassfish安装程序为我成功运行。您可以运行'which java'来了解计算机上安装java的位置。

sh ./java_ee_sdk-6u3-jdk7-linux-x64.sh -j [java install directory] ​​

(其中[java安装目录]是java安装的路径)。

答案 3 :(得分:0)

你是在tty中运行它还是在X-window下的虚拟终端? 为什么需要“安装”java EE?通常jar文件足以进行开发。

答案 4 :(得分:0)

引发异常是因为默认JVM不是SUN或ORACLE,可能是OPENJDK,Jrockit等。 要检查此项,请执行echo $JAVA_HOMEjava -version并检查jvm设置为默认值是来自ORACLE还是SUN。如果没有,请执行:sudo update-alternatives --config java并选择正确的。 如果您没有安装SUN或ORACLE JRE,请先安装一个。