2010-02-08 83 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