-3

我对 Ubuntu 和 Java 完全陌生。我设法使用终端安装了 JDK 1.6。我什至可以运行一个简单的 HelloWorld。我的问题是每当我尝试安装 java_ee 时出现错误:

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

老实说,我对自己在做什么没有足够的想法。请帮我解决一下这个。提前致谢。

4

5 回答 5

2

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

charva 的网站

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.
    }

查看这个相关问题也可能会有所帮助:线程“main”中的异常 java.lang.UnsatisfiedLinkError: no Terminal in java.library.path

更新如果您没有libTerminal.so,请查看charva 的网站,并按照 charva 的安装说明进行操作。有一个步骤可以构建libTerminal.so.

于 2011-09-20T10:33:58.143 回答
1

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

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

于 2011-09-20T10:22:51.117 回答
1

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

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

sh ./java_ee_sdk-6u3-jdk7-linux-x64.sh -j [java安装目录]

(其中 [java install directory] ​​是您的 java 安装路径)。

于 2011-12-12T21:28:26.947 回答
0

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

于 2011-09-20T10:32:07.473 回答
0

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

于 2013-09-30T17:28:16.520 回答