2012-06-13 5 views
6

Когда я построил Jikes RVM на Unbuntu, я получил эту ошибку. Есть идеи?"Ошибка: JAVA_HOME не определен правильно." в строительстве 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

Экологические переменные: 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

Я проверил java в JAVA_HOME/bin каталог, он работает. Независимо от того, как я изменяю переменные среды, ошибка продолжала жаловаться: «Мы не можем выполнить /opt/jdk1.6.0/bin/java». Кажется, я не изменял правильную «позицию».

Любой ключ?

Спасибо!

ответ

7

запустить эту команду:

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

Чтобы узнать, какой файл установки JAVA_HOME на этом пути.

+0

Привет, Рокки, следуя вашей команде, я получил это: global.javahome.ia32-linux =/opt/jdk1.6.0 global.javahome.x86_64-linux =/opt/jdk1.6.0 Но что это такое? Как я могу их изменить? Благодаря! – JackWM

+0

Извините, я думаю, вы должны добавить параметр -l, чтобы вы могли видеть файл, в котором он определен: find. -exec grep -l "jdk1.6.0" {} \; который напечатает имя файла, а затем отредактирует этот файл. –

+0

Я их нахожу. Они находятся в /bin/buildit.base_config. После внесения изменений в реальный JAVA_HOME ошибка исчезнет. Благодаря! – JackWM

0

Это JRE, но не JDK. Установите JDK и сделайте JAVA_HOME, указывающую на него.

+0

Можете ли вы привести пример о том, как это сделать? –

+0

Вы имеете в виду пример того, как установить JDK? Просто возьмите его из репозитория. JAVA_HOME может быть экспортирован в оболочку как переменную. –

3

Пока вы строите jikes, вы можете либо построить его с помощью ant, либо используя команду, которую вы используете. Если проблема JAVA_HOME вызывает неприятности Использовать

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

-Этот присутствует в «/usr/bin/jvm».

Другой способ: Существует бит/buildit.base_config, в котором конкретно указан путь для JAVA_HOME. Так что под «# Default JAVA_HOME values» вы можете изменить соответствующее место, например,

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 

Вы можете выбрать, какой вы хотите использовать. Если вы не знакомы с вашей архитектурой, измените все, и теперь вы можете построить, не беспокоясь о том, что ваш java-путь будет указан явно. Для получения более подробной информации посетите this blog

Я также написал небольшую статью о том, как можно start to fiddle with Jikes

+0

@jackWM: В настоящее время есть ошибка в jikes при построении с openjdk 7 и его отлично работает с версией 6, поэтому используйте версию 6. – Rorschach

-1

Вы можете получить эту ошибку из-за нескольких причин. Чтобы быстро исправить это, выполните следующие шаги:

Сначала найдите местоположение в java.Для того, чтобы получить список установленных Java-платформ, запустите следующую команду из терминала:

$ sudo update-alternatives --config java 

Теперь установите JAVA_HOME и PATH,

$ export JAVA_HOME=<java_home> 

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

Создание символической ссылки

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

Когда мы возьмите ваш случай в качестве примера:

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

Выше команда создаст местоположение символической ссылки, где система пытается найти в вашей проблеме.

И наконец, попробуйте свое приложение.