2012-06-13 14 views
6

Cuando construí el Jikes RVM en Unbuntu, obtuve este error. ¿Alguna idea?"Error: JAVA_HOME no está definido correctamente". en la construcción de Jikes rvm

 
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

variables ambientales: 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

he comprobado la java en el JAVA_HOME/bin directorio, funciona. No importa cómo modifique las variables de entorno, el error siguió quejándose "No podemos ejecutar /opt/jdk1.6.0/bin/java". Parece que no modifiqué la "posición" correcta.

¿Alguna pista?

Gracias!

Respuesta

7

ejecute este comando:

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

Para averiguar qué archivo es establecer JAVA_HOME en ese camino.

+0

Hola Rocky, siguiendo tu orden, obtuve esto: global.javahome.ia32-linux =/opt/jdk1.6.0 global.javahome.x86_64-linux =/opt/jdk1.6.0 ¿Pero qué son? ¿Cómo puedo cambiarlos? ¡Gracias! – JackWM

+0

Lo siento, supongo que debe agregar la opción -l para que pueda ver el archivo en el que está definido: find. -exec grep -l "jdk1.6.0" {} \; que imprimirá el nombre del archivo, luego edita ese archivo. –

+0

Los encuentro. Están en /bin/buildit.base_config. Después de modificarlos al JAVA_HOME real, el error desaparece. ¡Gracias! – JackWM

0

Es JRE pero no JDK. Instale JDK y haga que JAVA_HOME lo señale.

+0

¿Puedes dar un ejemplo de cómo hacerlo? –

+0

¿Quiere decir un ejemplo de cómo instalar JDK? Solo tómalo del repositorio. JAVA_HOME podría exportarse a shell como una variable. –

3

Mientras compila jikes, puede compilarlo con ant o utilizando el comando que está utilizando. Si el problema JAVA_HOME está causando problemas para su uso

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

-Este es presente en "/usr/bin/jvm".

Otro método: Hay bin/buildit.base_config en el que se menciona específicamente el camino para JAVA_HOME. Así que bajo "# Default JAVA_HOME values" puede modificar la ubicación adecuada, por ejemplo,

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 

Se puede elegir la que desee utilizar. Si no está familiarizado con su arquitectura, modifique todo y ahora puede compilar sin tener que preocuparse de que su ruta de Java se mencione explícitamente. Para obtener información más detallada comprobar this blog

También he escrito un pequeño artículo sobre cómo se puede start to fiddle with Jikes

+0

@jackWM: Actualmente existe un error en jikes al compilarlo con openjdk 7 y está funcionando bien con la versión 6, así que use la versión 6. – Rorschach

-1

podría obtener este error debido al par de razones. Para solucionar esto rápidamente, siga los pasos a continuación,

Primero encuentre la ubicación de Java.Para obtener una lista de las plataformas Java instaladas, ejecute el siguiente comando desde el terminal:

$ sudo update-alternatives --config java 

Ahora establezca JAVA_HOME y PATH,

$ export JAVA_HOME=<java_home> 

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

Crear el enlace simbólico

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

Cuando tome su caso como un ejemplo:

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

El comando anterior creará la ubicación del enlace simbólico donde el sistema intenta encontrar su problema.

Finalmente, pruebe su aplicación.

Cuestiones relacionadas