2011-09-20 190 views
-3

我完全不熟悉Ubuntu和Java。我設法使用終端安裝JDK 1.6。我甚至可以運行一個簡單的HelloWorld。我的問題是,每當我嘗試安裝java_ee林有錯誤:安裝JDK後無法在Ubuntu 11.04中安裝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 

老實說,我沒有對我做的不夠想法。請幫我解決一下這個。提前致謝。

+0

你究竟做了什麼來嘗試安裝導致回溯的jee? – bmargulies

+0

我以.sh格式下載了Java EE,然後使用sudo chmod + x java_ee.sh將其轉換爲exe文件,然後在終端中運行它,然後出現錯誤。 –

+0

什麼版本的jee?從哪裏下載? – bmargulies

回答

1

看起來Java需要一個名爲Terminal的本地庫來運行。這看起來像一個錯誤的庫路徑。

If you get a runtime error "java.lang.UnsatisfiedLinkError: no xxx in java.library.path", which means that JRE cannot find your native library at runtime. The easier way to debug is to print out the contents of "java.library.path" via System.out.println(System.getProperty("java.library.path")). You could set the native library path via the command-line VM option -Djava.library.path=xxx.

+0

我該怎麼辦?我是一個完整的小吃。 –

0

你在tty或X窗口下的虛擬終端中運行它? 爲什麼你需要「安裝」java EE?通常這個jar文件已經足夠用於開發。

+0

我需要Java EE進行企業Web應用程序開發。 –

+0

@Kent我同意你的jar文件對於開發是足夠的,但不能看到錯誤可能與在tty或X-Window上運行有關。順便說一下,大量downvoting不是我的:) –

+0

我看了異常堆棧跟蹤,看到突出顯示的「終端」,「擺動」,認爲這可能是在tty下啓動一個swing應用程序的原因...: (應該仔細閱讀。 – Kent

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

UPDATE如果沒有libTerminal.so做,看看charva's site,並按照charva的安裝說明。有一個步驟,你建立libTerminal.so

+1

爲什麼downvote? –

1

我剛碰到這個相同的問題。問題似乎是Glassfish安裝程序未找到正確的JAVA_HOME位置。您可以在安裝程序中用-j標誌手動進行設置(安裝程序腳本會將其傳遞給glassfish安裝程序)。

運行下面的命令可以讓glassfish安裝程序成功運行。你可以運行'which java'來了解你的機器上安裝java的位置。

SH ./java_ee_sdk-6u3-jdk7-linux-x64.sh -j【JAVA安裝目錄]

(其中[java的安裝目錄]是的路徑,你的java安裝)。

0

的EXCETION上升,因爲默認的JVM是不是SUN或Oracle,也許OpenJDK的,JROCKIT等 以支票本,執行echo $JAVA_HOMEjava -version並檢查是否設置爲默認的JVM是從Oracle或曬太陽。如果不是,請執行:sudo update-alternatives --config java並選擇正確的。 如果您尚未安裝SUN或ORACLE JRE,請先安裝一個。