2015-04-16 6 views
0

Итак, мы запускаем hadoop на компьютере Power PC (64 бит). Он работает с использованием IBM JDK. Тем не менее, в рамках этой программы сокращения карты hasoop разные процессы генерируются (используя класс ProcessBuilder), которые выполняют программы jar. Проблема в том, что эти программы имеют проблемы с виртуальной машиной IBM JDK и поэтому требуют Open JDK. Аналогично, у hasoop есть проблемы с OpenJDK на Power PC. Поэтому мне было интересно, если можно выполнить файл jar с использованием другой версии java. Так, например, в этом случае hasoop использует IBM JDK и файлы jar, которые выполняются в рамках карты, сокращают использование программы Open JDK. В принципе, нам нужно использовать разные виртуальные машины Java для одновременных программ.Можно ли запускать файлы jar с использованием разных версий java?

+0

Что мешает программам использовать IBM JDK и как возникают процессы jar из hadoop? –

+0

Ну, я действительно не знаю, но программа, с которой я работаю, как известно, падает с IBM JDK. Процессы создаются в программе сокращения карты с использованием класса ProcessBuilder в java. – MetallicPriest

ответ

1

Вы указали наиболее важные биты информации в своем комментарии - нерестится через класс ProcessBuilder. Этот класс вызывает вызовы на уровне ОС, поэтому вы можете начать с этого процесса, и они полностью отделены от процесса Java, который их запускал. Таким образом, общий ответ: «Да, это возможно». Просто убедитесь, что ProcessBuilder вызывает другую установку Java.

+0

Знаете ли вы, как вызвать другую установку Java, используя класс ProcessBuilder? Я имею в виду, используя этот метод и аргументы? – MetallicPriest

+1

ProcessBuilder только делает вызов на уровне _system_. Просто укажите полный путь к «другой» установке Java в вызове. – Ray

0

Ваши версии Java - это всего лишь ссылка на связанные каталоги установки. Поэтому, когда вы устанавливаете различные (загрузки находятся здесь: http://www.ibm.com/developerworks/java/jdk/linux/download.html), вам просто нужно изменить ссылку (ln -s) в этот подкаталог. Например, мы держали 4 версии Java в системах:

/usr/java/java_7_64bt 
/usr/java/java_7_32bt 
/usr/java/java_6_64bt 
/usr/java/java_6_32bt 
# ls -l /usr/java 
lrwxrwxrwx. 1 root root 22 Aug 5 15:00 /usr/bin/java -> /usr/java/java_7_64bit/java 

Другие программы могут затем просто позвонить либо /usr/bin/java или прямой путь версий, которые нуждаются в то время как Hadoop называет что-то другое.

 Смежные вопросы

  • Нет связанных вопросов^_^