Проблемы с установкой Java EE SDK в Linux - PullRequest
19 голосов
/ 08 февраля 2010

Я отлично установил Java 6 JRE на свой VPS, но не могу даже запустить установку EE SDK.

root@vps [/usr/java]# java -version
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode)

Однако, когда я пытаюсь запустить java_ee_sdk-6-unix.sh:

./  ../  java_ee_sdk-6-unix.sh*  jre1.6.0_18/  jre.bin*
root@vps [/usr/java]# ./java_ee_sdk-6-unix.sh

Could not locate a suitable jar utility.
Please ensure that you have Java 6 or newer installed on your system
and accessible in your PATH or by setting JAVA_HOME

Но суть в том, что я правильно установил переменные среды:

root@vps [/usr/java]# echo $PATH
/usr/java/jre1.6.0_18:/usr/java/jre1.6.0_18/bin:/usr/java/jre1.6.0_18/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin
root@vps [/usr/java]# export -p | grep JAVA_HOME
declare -x JAVA_HOME="/usr/java/jre1.6.0_18"

Я тяну свои волосы сюда, есть идеи?

Ответы [ 8 ]

15 голосов
/ 08 февраля 2010

У вас установлен JDK? Скорее всего, вы хотите указать $JDK_HOME/bin в своем PATH, а не /bin в JRE, поскольку jar поставляется с JDK, а не JRE.

7 голосов
/ 08 февраля 2010

Сделайте это:

  1. Удалить все установки Java.
  2. Установите Java SDK (самораспаковывающийся) в / opt / jdk1.6.0_16 (например)
  3. Создать символическую ссылку: ln -s /opt/jdk1.6.0_16 /opt/jdk
  4. Редактировать $HOME/.bashrc:

    JAVA_HOME = / opt / jdk
    PATH = $ PATH: $ HOME / бен: $ JAVA_HOME / бен

  5. Выйдите из системы и войдите снова.

Это дает много преимуществ:

  • Вы можете установить несколько версий SDK и вам нужно только переключить символическую ссылку.
  • Вы знаете, где находятся все файлы.
  • Вы точно знаете, какая версия Java используется.
  • Другие версии не установлены, поэтому не может быть никаких конфликтов.

Я делал это годами и у меня никогда не было проблем с Java в Linux, за исключением пакетов, которые не обнаруживают, что Java установлена, и пытаются установить OpenJDK.

Кроме того, держитесь подальше от OpenJDK, так как его шрифты ужасно созерцать.

4 голосов
/ 09 января 2013

Быстрое и грязное решение для меня:

sudo apt-get install jarwrapper fastjar

Тогда просто запустите скрипт .sh и вуаля!

3 голосов
/ 10 марта 2013

У меня была проблема, однако она была связана с учетной записью пользователя sudo при выполнении файла .sh. Я устанавливал Glassfish v3 на новый VPS-сервер с 64-битной ОС Ubuntu 10.4.

sudo chmod +x java_ee_sdk-6u2-jdk-linux-x64.sh

sudo ./java_ee_sdk-6u2-jdk-linux-x64.sh -s -a java_ee_sdk-6u2-jdk-linux-x64-install-answers.txt

Только для того, чтобы получить ту же ошибку, с которой вы впервые столкнулись:

Could not locate a suitable jar utility.
Please ensure that you have Java 6 or newer installed on your system
and accessible in your PATH or by setting JAVA_HOME

Глупо, правда, когда я запускал команду вот так:

  ./java_ee_sdk-6u2-jdk-linux-x64.sh -s -a java_ee_sdk-6u2-jdk-linux-x64-install-answers.txt

К моему удивлению, он ответил:

Welcome to GlassFish V3 installer

Using the user defined JAVA_HOME : /opt/jdk
Entering setup...

Это было после того, как я настроил свой JAVA_HOME в файле: /etc/bash.bashrc

JAVA_HOME=/opt/jdk
export JAVA_HOME

PATH=$PATH:$JAVA_HOME/bin
export PATH
3 голосов
/ 17 мая 2012

Я получил ту же ошибку. Я удалил OpenJDK с помощью apt-get (я использую Ubuntu 11.10), затем скачал Java JDK 1.7 (который поставляется, конечно, с JRE) и распаковал его в / usr / local / java - это дало мне новый каталог:

/usr/local/java/jdk1.7.0_04

Далее я добавил:

/usr/local/java/jdk1.7.0_04

в $ PATH, установите $ JAVA_HOME и $ JRE_HOME как

/usr/local/java/jdk1.7.0_04
/usr/local/java/jdk1.7.0_04/jre

соответственно.

Все работает хорошо. Я могу скомпилировать Java-программы, используя javac , и запустить их, используя java . Jar Программа также работает нормально. Так почему инсталлятор java ee жалуется на это? Любые подсказки, как это исправить?

1 голос
/ 08 января 2012

Мои 2 цента ...

У меня та же проблема, и я решил ее, установив утилиту jar.

Как сказал "matt b" , проблема заключалась в том (что моя проблема), что установщик не нашел утилиту jar (программу jar), необходимую для запуска установочных файлов.

У вас установлен JDK? Скорее всего, вы захотите поместить $ JDK_HOME / bin в PATH, а не в / bin JRE, так как jar поставляется с JDK, а не JRE.

Но в моем случае (с Ubuntu 11.10 x64 и JAVA_HOME -> / usr / lib / jvm / java-6-openjdk) проблема не была решена установкой JDK / bin dir в PATH. Вместо этого мне пришлось установить пакет утилит jar (с использованием Synaptic) под названием Jarwrapper версии 0.37ubuntu1.

После установки скрипт установки Oracle JDK (java_ee_sdk-6u3-jdk7-linux-x64-ml.sh) работал нормально.

С уважением,

1 голос
/ 25 ноября 2011

Эта информация работает для меня ... Первый метод был достаточно.

Привет.

http://ubuntuforums.org/showthread.php?p=11485538#post11485538

1 голос
/ 27 июля 2010

В моем случае я извлек jdk1.6.0_16 в свой домашний каталог и имел символические ссылки на java и /javac в /bin. Тогда я столкнулся с ошибкой, описанной выше в вопросе.

Однако, как только я включил символическую ссылку на jar в /bin, сценарий оболочки для установки Java EE запустился, как и ожидалось.

...