Итак, мы запускаем 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?
ответ
Вы указали наиболее важные биты информации в своем комментарии - нерестится через класс ProcessBuilder
. Этот класс вызывает вызовы на уровне ОС, поэтому вы можете начать с этого процесса, и они полностью отделены от процесса Java, который их запускал. Таким образом, общий ответ: «Да, это возможно». Просто убедитесь, что ProcessBuilder
вызывает другую установку Java.
Знаете ли вы, как вызвать другую установку Java, используя класс ProcessBuilder? Я имею в виду, используя этот метод и аргументы? – MetallicPriest
ProcessBuilder только делает вызов на уровне _system_. Просто укажите полный путь к «другой» установке Java в вызове. – Ray
Ваши версии 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 называет что-то другое.
Что мешает программам использовать IBM JDK и как возникают процессы jar из hadoop? –
Ну, я действительно не знаю, но программа, с которой я работаю, как известно, падает с IBM JDK. Процессы создаются в программе сокращения карты с использованием класса ProcessBuilder в java. – MetallicPriest