2010-02-08 113 views
19

我在我的VPS上安裝了Java 6 JRE很好,但我無法安裝EE SDK甚至無法運行。在Linux上安裝Java EE SDK時遇到的問題

[email protected] [/usr/java]# java -version 
java version "1.6.0_18" 
Java(TM) SE Runtime Environment (build 1.6.0_18-b07) 
Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode) 

然而,當我嘗試運行java_ee_sdk-6-unix.sh

./ ../ java_ee_sdk-6-unix.sh* jre1.6.0_18/ jre.bin* 
[email protected] [/usr/java]# ./java_ee_sdk-6-unix.sh 

Could not locate a suitable jar utility. 
Please ensure that you have Java 6 or newer installed on your system 
and accessible in your PATH or by setting JAVA_HOME 

但美中不足的是,我正確設置我的環境變量:

[email protected] [/usr/java]# echo $PATH 
/usr/java/jre1.6.0_18:/usr/java/jre1.6.0_18/bin:/usr/java/jre1.6.0_18/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin 
[email protected] [/usr/java]# export -p | grep JAVA_HOME 
declare -x JAVA_HOME="/usr/java/jre1.6.0_18" 

我拉我的頭髮在這裏, 有任何想法嗎?

+0

您的發行版是否有軟件包管理器?你爲什麼不使用它? – voyager 2010-02-08 19:40:14

+0

我不認爲我可以通過rpm獲得EE SDK。 http://java.sun.com/javaee/downloads/index.jsp - Sun只是把它作爲一個.sh安裝來實現。 – 2010-02-08 19:45:34

+0

「哪個罐子」說什麼? – daveb 2010-02-08 19:49:48

回答

15

您是否安裝了JDK?您可能希望在您的PATH上放置$JDK_HOME/bin,而不是JRE的/bin,因爲jar附帶了JDK,而不是JRE。

+0

是,100%正確。固定。謝謝。 – 2010-02-08 20:11:15

7

這樣做:

  1. 刪除所有Java安裝。
  2. 安裝Java SDK(自解壓)成/opt/jdk1.6.0_16(例如)
  3. 創建符號鏈接:ln -s /opt/jdk1.6.0_16 /opt/jdk
  4. 編輯$HOME/.bashrc

    JAVA_HOME = /選擇/ JDK
    PATH = $ PATH:$ HOME/bin中:$ JAVA_HOME/bin中

  5. 註銷並重新登錄

這提供了許多優點:

  • 您可以安裝SDK的多個版本,並只需要切換一個符號鏈接。
  • 你知道所有文件的位置。
  • 您確切知道正在使用哪個版本的Java。
  • 沒有安裝其他版本,所以不會有任何衝突。

我已經做了這麼多年,從來沒有任何問題在Linux上的Java,除了沒有檢測到Java安裝並嘗試安裝OpenJDK的軟件包。

另外,遠離OpenJDK,因爲它的字體非常糟糕。

1

在我的情況下,我的jdk1.6.0_16在我的主目錄中提取,並且在/bin中有一個到java/javac的符號鏈接。然後我遇到了上述問題中所述的錯誤。

但是,一旦我在/bin中包含了一個到jar的符號鏈接,安裝Java EE的shell腳本就會按預期運行。

1

我2美分...

我有同樣的問題,並通過安裝一個jar工具解決它。

由於「matt b」表示問題出在(以及我的問題),安裝程序未找到運行安裝文件所需的jar實用程序(jar程序)。

您是否安裝了JDK?您可能希望將$ JDK_HOME/bin放在PATH中,而不是JRE的/ bin中,因爲jar是隨JDK而非JRE提供的。

但在我的情況下(具有的Ubuntu 11.10 x64和JAVA_HOME - >/usr/lib中/ JVM/JAVA -6-的openjdk)的問題沒有被設置在PATH的JDK/bin目錄固定。相反,我必須安裝名爲Jarwrapper版本0.37ubuntu1的jar實用程序包(使用Synaptic)。

安裝它之後,Oracle的JDK(java_ee_sdk-6u3-jdk7-linux-x64-ml.sh)的安裝腳本運行就好了。

Regards,

3

我得到了同樣的錯誤。我使用apt-get(我正在運行Ubuntu 11.10)刪除了OpenJDK,然後下載了Java JDK 1.7(這當然與JRE一起)並解壓縮到/ usr/local/java下 - 這給了我新的目錄:

/usr/local/java/jdk1.7.0_04 

接下來,我又說:

/usr/local/java/jdk1.7.0_04 

至$ PATH分別設置$ JAVA_HOME和$ JRE_HOME爲

/usr/local/java/jdk1.7.0_04 
/usr/local/java/jdk1.7.0_04/jre 

一切正常。我可以使用javac編譯java程序並使用java運行它們。 罐子程序運行良好。那麼爲什麼java ee installer會抱怨呢?任何線索如何解決這個問題?

+1

問題不再有效,問題是我試圖運行安裝程序** sudo bash java_ee_sdk-6u4-unix.sh **,我只是使用su切換到root帳戶,它的工作原理! :D – biera 2012-05-16 20:12:58

+0

當然,這是因爲root有不同的$ PATH var。切換到root用戶後,您必須將$ JAVA_HOME(需要再次設置此變量)添加到$ PATH(PATH = $ PATH:$ JAVA_HOME)。 – biera 2013-03-16 21:59:15

4

我快速和骯髒的解決方案:

sudo apt-get install jarwrapper fastjar 

然後,只需運行腳本.SH,瞧!

3

我遇到了問題,但它在執行.sh文件時與sudo用戶帳戶有關。 我正在使用Ubuntu 10.4 64Bit操作系統在新的VPS託管服務器上安裝Glassfish v3。

sudo chmod +x java_ee_sdk-6u2-jdk-linux-x64.sh 

sudo ./java_ee_sdk-6u2-jdk-linux-x64.sh -s -a java_ee_sdk-6u2-jdk-linux-x64-install-answers.txt 

只有得到確切的同樣的錯誤你是第一次經歷:

Could not locate a suitable jar utility. 
Please ensure that you have Java 6 or newer installed on your system 
and accessible in your PATH or by setting JAVA_HOME 

傻真的,當我跑這樣的命令:

./java_ee_sdk-6u2-jdk-linux-x64.sh -s -a java_ee_sdk-6u2-jdk-linux-x64-install-answers.txt 

讓我吃驚的是有迴應:

Welcome to GlassFish V3 installer 

Using the user defined JAVA_HOME : /opt/jdk 
Entering setup... 

這是我在文件中設置了我的JAVA_HOME之後:/etc/bash.bashrc

JAVA_HOME=/opt/jdk 
export JAVA_HOME 

PATH=$PATH:$JAVA_HOME/bin 
export PATH