"Error: JAVA_HOME is not defined correctly." in building Jikes rvm
Asked Answered
F

4

6

When I built the Jikes RVM on Ubuntu, I got this error. Any idea?

bin/buildit localhost production
---> Config: production
/bin/bash --login -c  '/bin/bash --login -c  "   cd /home/jack/Programs/jikesrvm-3.1.2 &&  export JAVA_HOME=/opt/jdk1.6.0 &&   ant very-clean -Dhost.name=ia32-linux &&  ant check-components-properties -Dhost.name=ia32-linux -Dtarget.name=ia32-linux -Dcomponents.cache.dir=/home/jack/.buildit_components_cache  &&   ant -Dtarget.name=ia32-linux -Dconfig.name=production -Dhg.revision= -Dhost.name=ia32-linux -Dcomponents.cache.dir=/home/jack/.buildit_components_cache "' 
Error: JAVA_HOME is not defined correctly.
  We cannot execute /opt/jdk1.6.0/bin/java
Wed Jun 13 12:23:37 EDT 2012
===================== Summary =====================
Local   : /home/jack/Programs/jikesrvm-3.1.2
Build   : ubuntu:/home/jack/Programs/jikesrvm-3.1.2
Target  : ubuntu:/home/jack/Programs/jikesrvm-3.1.2
Start   : Wed Jun 13 12:23:37 EDT 2012
Config  : production [FAILED Wed Jun 13 12:23:37 EDT 2012]
===================================================

OS:

Linux ubuntu 2.6.32-24-generic #39-Ubuntu SMP Wed Jul 28 06:07:29 UTC 2010 i686 GNU/Linux

Environmental Variables: PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-6-sun-1.6.0.22/bin<

JAVA_HOME

/usr/lib/jvm/java-6-sun-1.6.0.22

I checked the java in the JAVA_HOME/bin directory, it works. No matter how I change the environmental variables, the error kept complaining

"We cannot execute /opt/jdk1.6.0/bin/java".

It seems that I didn't modify the right "position".

Fulgurant answered 13/6, 2012 at 16:24 Comment(0)
E
8

run this command:

find . -exec grep "jdk1.6.0" {} \;

To find out which file is setting JAVA_HOME to that path.

Estate answered 13/6, 2012 at 18:25 Comment(4)
Hi Rocky, following your command, I got this: global.javahome.ia32-linux=/opt/jdk1.6.0 global.javahome.x86_64-linux=/opt/jdk1.6.0 But what are they? How can I change them? Thanks!Fulgurant
Sorry I guess you should add the -l option so you can see the file it's defined in: find . -exec grep -l "jdk1.6.0" {} \; that will print the file name, then edit that file.Estate
I find them. They are in /bin/buildit.base_config. After modifying them to the real JAVA_HOME, the error disappears. Thanks!Fulgurant
I am facing a similar question:#29456649 and it seems that this solution does not work for me. Could you please take a look?Triennium
C
3

While you build jikes you can either build it using ant or using the command you are using. If the JAVA_HOME problem is causing trouble use

bin/buildit localhost production -j"path to your jvm directory"

-This is present in "/usr/bin/jvm".

Another method: There is bin/buildit.base_config in which path for JAVA_HOME is specifically mentioned. So under "# Default JAVA_HOME values" you can modify appropriate location, for example,

global.javahome.ppc32-linux=/usr/lib/jvm/java-6-sun-1.6.0.26
global.javahome.ppc64-linux=/usr/lib/jvm/java-6-sun-1.6.0.26
global.javahome.ia32-linux=/usr/lib/jvm/java-6-sun-1.6.0.26
global.javahome.x86_64-linux=/usr/lib/jvm/java-6-sun-1.6.0.26

You can chose which you want to use. If not familiar with your architecture, modify all and now you can build without having to worry about your java path to be mentioned explicitly. For more detailed information check this blog

I have also written a small article on how one can start to fiddle with Jikes

Cleopatracleopatre answered 2/7, 2012 at 12:52 Comment(1)
@jackWM: There is presently bug in jikes while building it with openjdk 7 and its working fine with version 6, so use version 6.Cleopatracleopatre
C
0

It's JRE but not JDK. Install JDK and make JAVA_HOME pointing to it.

Cony answered 13/6, 2012 at 18:21 Comment(2)
can you give an example on how to do that?Heptachord
You mean an example of how to install JDK ? Just take it from the repository. JAVA_HOME could be exported into shell as a variable.Cony
I
-1

You might get this error due to couple of reasons. To fix this quickly please follow below steps,

First find the java location. To get a list of your installed Java platforms, run the following command from the terminal:

$ sudo update-alternatives --config java

Now set JAVA_HOME and PATH,

$ export JAVA_HOME=<java_home>

$ export PATH=$JAVA_HOME/jre/bin:$PATH

Create the symlink

$ sudo ln -s <java_home>/jre <java_symlink_path>

When we take your case as a example :

$ sudo ln -s /usr/lib/jvm/java-6-sun-1.6.0.22/jre /opt/jdk1.6.0

Above command will create the symlink location where the system is trying to find in your issue.

Finally do the try your app.

Illegible answered 27/5, 2016 at 9:30 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.