11

I'm pretty new on ubuntu, at some point in the terminal I'm running:

mortar local:illustrate pigscripts/retail-recsys.pig purchase_input -f params/retail.params

but I have this following error:

A suitable java installation could not be found. If you already have java installed
please set your JAVA_HOME environment variable before continuing. Otherwise, a suitable java installation will need to be added to your local system.

Installing Java

On OSX run javac from the command line. This will intiate the installation. For Linux systems please consult the documentation on your relevant package manager.

But I'm pretty sure I have Java, so please how can I set my JAVA_HOME environment variable?

1
  • 1
    I did some mousing around, and I found this document page related to Mortar. I'm willing to bet that's what you want to use to export your JAVA_HOME when you're running/installing it. Commented Apr 17, 2014 at 4:48

9 Answers 9

20

First, you need to decide which installed version of Java to use? No fear, you can pick any you have -

update-java-alternatives -l

One "easy" solution is to add this to "$HOME/.bashrc",

export JAVA_HOME=$(update-java-alternatives -l | head -n 1 | awk -F ' ' '{print $NF}')

This picks the first installed JDK and takes it's JAVA_HOME (the third field) - on my system that's

/usr/lib/jvm/java-1.7.0-openjdk-amd64
Sign up to request clarification or add additional context in comments.

4 Comments

this is only a temporary solution, and will get cleared upon reboot.
@IgorGanapolsky No, if you add it to ".bashrc" it will not.
On Ubuntu 14.04, a symlink /usr/lib/jvm/default-java was created when I installed jdk via apt. I used this for the JAVA_HOME environment variable.
I needed to update this solution for Ubuntu 16.4 to take out the multiple spaces between the 3 parts. So I use export JAVA_HOME=$(update-java-alternatives -l | head -n 1 | sed 's/ */ /g' | cut -f3 -d' ')
6
export JAVA_HOME=/usr/lib/jvm/java-7-oracle

in your ~/.bashrc file.

If you want this environment variable available to all users and on system start then you can add the following to /etc/profile.d/java.sh (create it if necessary):

export JDK_HOME=/usr/lib/jvm/java-7-oracle
export JAVA_HOME=/usr/lib/jvm/java-7-oracle

Then in a terminal run:

sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh

Comments

2

For JAVA_HOME to point to the active jdk, add to your ~/.bashrc

export JAVA_HOME=$(update-alternatives --query javac | sed -n -e 's/Best: *\(.*\)\/bin\/javac/\1/p')

which will dynamically set the $JAVA_HOME to the JDK selected by update-alternatives.

1 Comment

In order to get the currently configured alternative, I think it should be: update-alternatives --query javac | sed -n -e 's/Value: *\(.*\)\/bin\/javac/\1/p'
2

The simplest method to set environment variable is with export:

    $ export JAVA_HOME="/usr/bin"

This will temporarily set the desired variable. You can check if it was set with:

    $ echo $JAVA_HOME

or

    $ printenv

If you want a more permanent solution, append 'export JAVA_HOME="/usr/bin"' to .bashrc or .bash_profile file.

To check if java is properly installed:

    $ which java
    $ which javac

You should get similar output:

    /usr/bin/java

4 Comments

Why /usr/bin/java? What if I download jdk from Oracle into another directory?
Well, that was just a specific example :)
This is the best answer if you plan to use multiple versions of java. This allows you to use update-alternatives to set your java version, and it will work throughout.
It should be export JAVA_HOME=/usr, otherwise the system will look for the java executable in /usr/bin/bin.
1

put the line export JAVA_HOME=/usr/lib/jvm/java-xxx-oracle in your .profile file at home directory. Note that you have to replace xxx. You may need to logout and login again

Comments

1

In Debian/Ubuntu/Linux Mint, we could add to .bashrc export JAVA_HOME=$(update-java-alternatives -l | head -n 1 | sed 's/\s//g')

Comments

0

Normally you can set paths in

~/.bashrc

with export JAVA_HOME=/usr/lib/jvm/java-version

However you may followe instructions from here for a comprehensive instruction.

1 Comment

I set it in .bashrc, but do I have to reboot?? It doesn't take effect.
-1

By far, the ultimate guide to doing this is here. You don't need to set PATH as much as you just need to adjust the default 'java alternative' location.

Comments

-1

you can type java in terminal,if it does not work means your did not install java.if it works, type javac in terminal.if javac dose not work,you should set the java environment variable,if it works ,there maybe something wrong with you program.

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.