19

I installed the Java 6 JRE on my VPS just fine, but I can't get the EE SDK installation to even run.

root@vps [/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)

However, when I try to run java_ee_sdk-6-unix.sh:

./  ../  java_ee_sdk-6-unix.sh*  jre1.6.0_18/  jre.bin*
root@vps [/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

But the catch is that I set my environment variables correctly:

root@vps [/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
root@vps [/usr/java]# export -p | grep JAVA_HOME
declare -x JAVA_HOME="/usr/java/jre1.6.0_18"

I'm pulling my hair out here, any ideas?

6
  • Doesn't your distro have a package manager? Why don't you use that? Commented Feb 8, 2010 at 19:40
  • I don't think I can get the EE SDK via rpm. java.sun.com/javaee/downloads/index.jsp - Sun just hands it out as a .sh installation. Commented Feb 8, 2010 at 19:45
  • What does "which jar" say? Commented Feb 8, 2010 at 19:49
  • It says nothing. Same with whereis jar. Commented Feb 8, 2010 at 19:51
  • Fix that - put jar on the path and then see if your installer works. Commented Feb 8, 2010 at 19:54

8 Answers 8

15

Do you have a JDK installed? You likely want to put $JDK_HOME/bin on your PATH, not the /bin of a JRE, as jar comes with JDK, not JRE.

Sign up to request clarification or add additional context in comments.

Comments

7

Do this:

  1. Delete all installations of Java.
  2. Install the Java SDK (self-extracting) into /opt/jdk1.6.0_16 (for example)
  3. Create a symbolic link: ln -s /opt/jdk1.6.0_16 /opt/jdk
  4. Edit $HOME/.bashrc:

    JAVA_HOME=/opt/jdk
    PATH=$PATH:$HOME/bin:$JAVA_HOME/bin

  5. Logout and log back in.

This offers many advantages:

  • You can install multiple versions of the SDK and need only switch a symbolic link.
  • You know where all the files are located.
  • You know exactly which version of Java is being used.
  • No other versions are installed, so there cannot be any conflicts.

I have done this for years and have never had any problems with Java on Linux, except for packages that do not detect that Java is installed and attempt to install the OpenJDK.

Also, stay away from the OpenJDK as its fonts are terrible to behold.

Comments

4

Quick and dirty solution for me:

sudo apt-get install jarwrapper fastjar

Then just run your .sh script and voila!

Comments

3

I got the same error. I removed OpenJDK using apt-get (I'm running Ubuntu 11.10) then downloaded Java JDK 1.7 (which comes of course with JRE) and unpacked this under /usr/local/java - this gave me new directory:

/usr/local/java/jdk1.7.0_04

Next I added:

/usr/local/java/jdk1.7.0_04

to $PATH, set $JAVA_HOME and $JRE_HOME as

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

respectively.

Everything works nice. I can compile java progams using javac and run them using java. Jar program runs fine as well. So why does java ee installer complain about that? Any clues as how to fix that?

2 Comments

problem is not valid anymore, the problem was I tried to run the installer as sudo bash java_ee_sdk-6u4-unix.sh, I just swiched to root account using su and it works! :D
Of course it's because root has different $PATH var. After switching to root user you must add $JAVA_HOME (it's necessary to set this var once again) to $PATH (PATH=$PATH:$JAVA_HOME).
3

I had the problem, however it was related to the sudo user account when executing the .sh file. I was installing Glassfish v3 on a new VPS hosted server with Ubuntu 10.4 64Bit OS.

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

Only to get the exact same error you were first experiencing:

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

Silly really, when I ran the command like this:

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

To my suprise it responded with:

Welcome to GlassFish V3 installer

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

This was after I had setup my JAVA_HOME in file: /etc/bash.bashrc

JAVA_HOME=/opt/jdk
export JAVA_HOME

PATH=$PATH:$JAVA_HOME/bin
export PATH

Comments

1

In my case, I had jdk1.6.0_16 extracted in my home directory and had a symbolic links to java and /javac in /bin. Then I encountered the error described above in the question.

However once I included a symbolic link to jar in /bin, the shell script to install Java EE ran as expected.

Comments

1

This info works for me... The first method was enought.

Regards.

http://ubuntuforums.org/showthread.php?p=11485538#post11485538

Comments

1

My 2 cents...

I have the same problem and solve it by installing a jar utility.

As "matt b" said the problem was (well my problem), that the installer was not finding a jar utility (jar program), needed to run the installation files.

Do you have a JDK installed? You likely want to put $JDK_HOME/bin on your PATH, not the /bin of a JRE, as jar comes with JDK, not JRE.

But in my case (having Ubuntu 11.10 x64 and JAVA_HOME --> /usr/lib/jvm/java-6-openjdk) the problem was not fixed by setting the JDK/bin dir on the PATH. Instead I had to install a jar utility package (using Synaptic) called Jarwrapper version 0.37ubuntu1.

After installing it, the installation script of Oracle's JDK (java_ee_sdk-6u3-jdk7-linux-x64-ml.sh) ran just fine.

Regards,

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.