我完全是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
老实说,我对自己的所作所为并不了解。请帮我解决一下这个。提前谢谢。
答案 0 :(得分:2)
该堆栈跟踪显示错误发生在charva
类上。 charva
需要一个名为Terminal的库。
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_HOME
或java -version
并检查jvm设置为默认值是来自ORACLE还是SUN。如果没有,请执行:sudo update-alternatives --config java
并选择正确的。
如果您没有安装SUN或ORACLE JRE,请先安装一个。