Проблемы с установкой Java в Ubuntu - PullRequest
5 голосов
/ 02 января 2011

Попытка установить Java (JDK 6) в моей новой системе Ubuntu и получение некоторых странных ошибок. Я впервые использую любой вариант Linux, и поэтому я уверен, что это проблема пользователя (разрешения или иное).

Я скачал файл BIN прямо с сайта Oracle (Java SE 6u23 для 64-битного Linux). По умолчанию загружается в /home/myUserName/Downloads.

Оттуда я переместил файл в / opt / java, который был каталогом, который я создал, потому что (как новичок в Linux) имел смысл быть каталогом, куда должна идти Java.

Затем я выполнил следующие 2 команды в соответствии с инструкцией, которую я нашел в Интернете для запуска BIN:

chmod +x jdk-6u23-linux-x64.bin
sudo ./jdk-6u23-linux-x64.bin

Теперь в моем / opt / java-каталоге я вижу как BIN-файл, так и каталог jdk1.6.0_23 , который при проверке кажется нетронутым.

Но , когда я открываю новый терминал и запускаю java -version , я получаю:

Программа 'java' может быть найдена в следующих пакетах:
- gcj-4.4-jre-headless
- gcj-4.5-jre-headless
- openjdk-6-jre-headless
Попробуйте: sudo apt-get install

Что здесь происходит?!?

(1) Я ошибся, пытаясь сделать / opt / java моим каталогом Java?
(2) Я выполнял неправильные команды?
(3) Java 1.6.0_23 даже установлена ​​на моем компьютере?
(4) Что это за цели без gcj-xxx-без голов?!?!

Спасибо за любой вклад!

Ответы [ 7 ]

7 голосов
/ 02 января 2011

Был ли я неправ, пытаясь сделать / opt / java моим каталогом Java?

Не совсем. Многие разработчики Java устанавливают несколько установок JDK и всегда используют /opt/jdk1.6.0_23 или аналогичные пути. Файл bin, который вы скачали, не является установщиком , а просто экстрактором. Он не устанавливает двоичные файлы java в системные папки, такие как /bin.

Обычно я загружаю JDK и запускаю его из своей домашней папки, а затем перемещаю в / opt и выполняю chown.

Я выполнял неправильные команды?

Не совсем. Если вы хотели установить отдельный JDK, вы сделали это правильно. Если вам нужна системная интеграция, вам лучше использовать пакеты для конкретного дистрибутива, такие как пакет, установленный через aptitude install sun-java6-jdk или аналог.

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

Если вы хотите использовать двоичный файл java в командной строке, вам придется вручную установить переменные окружения PATH и JAVA_HOME. Я думаю, что в Ubuntu это / etc / environment или / etc / profile или что-то в этом роде.

Java 1.6.0_23 даже установлена ​​на моем компьютере?

Не совсем. См. Ответы выше.

Что это за цели без gcj-xxx-без голов?!?

GCJ - это компилятор Gnu для Java. Очевидно, что он включает в себя Java Development Kit и Java Runtime Environment.

6 голосов
/ 02 января 2011

Зачем скачивать корзину, когда вы можете просто:

sudo apt-get install sun-java6-jdk

Если нет особой причины, по которой вам нужна эта конкретная версия с сайта, вам следуетиспользуйте apt-get, потому что он позаботится обо всех вещах, таких как переменная PATH и т. д.

1 голос
/ 09 апреля 2014

Пожалуйста, следуйте приведенным ниже инструкциям для установки Oracle Java:

Загрузка последняя Java SE SDK версия.

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Разархивировать архив :

tar -xzvf jdk-8-linux-x64.tar.gz
mv jdk1.8.0 /opt 
cd /opt/jdk1.8.0

Этот шаг регистрирует загруженную версию Java в качестве альтернативы и переключает ее для использования по умолчанию:

update-alternatives --install /usr/bin/java java /opt/jdk1.8.0/bin/java 1
update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0/bin/javac 1
update-alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /opt/jdk1.8.0/jre/lib/amd64/libnpjp2.so 1
update-alternatives --set java /opt/jdk1.8.0/bin/java
update-alternatives --set javac /opt/jdk1.8.0/bin/javac
update-alternatives --set mozilla-javaplugin.so /opt/jdk1.8.0/jre/lib/amd64/libnpjp2.so

Тест

Чтобы проверить версию Java, которую вы сейчас используете

java -version

Выход

java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)

Чтобы проверить плагин браузера, перейдите к http://www.java.com/ и нажмите «Есть ли у меня Java?»

Ссылка: https://askubuntu.com/questions/437776/ubuntu-13-04-unable-to-install-jdk7

1 голос
/ 05 января 2011

JDK, установленный вами из Sun / Oracle, является исходным JDK. «Безголовый» JDK - это альтернатива с открытым исходным кодом. Когда вы запускаете файл JDK BIN, он просто извлекает архив. Когда вы ввели команду java -version, она обнаружила FOSS Java, а не Java, которую вы извлекли в / opt. Как уже упоминал кто-то, разработчики хранят несколько версий JDK. Если вы хотите использовать Java Oracle, вам нужна ссылка / usr / bin / java на /opt/jdk1.6.0_23/bin/java.

.
sudo ln -s /usr/bin/java /opt/jdk1.6.0_23/bin/java

Чтобы это работало, существующая команда java должна быть сначала отделена от "безголового" JDK. (Выполните следующие действия перед предыдущей командой.)

sudo mv /usr/bin/java /usr/bin/java_old

Предполагается, что в / usr / bin есть ссылка или исполняемый файл с именем java. Используйте команду which, чтобы быть уверенным.

which java
1 голос
/ 02 января 2011

Вы просто поместили двоичные файлы JDK в каталог.Хотя по соглашению часто используются / opt / java или / opt / jdk, эти каталоги не распознаются системой автоматически.

Однако вы можете обновить переменную среды PATH, включив в нее / opt / java /bin dir или символическая ссылка (ln -s) / opt / java / bin / java в одном из каталогов вашей системы, которые включены в ваш путь, например / usr / bin /

0 голосов
/ 18 июня 2013

Попробуйте:

rm -rf /usr/bin/javac
rm -rf /usr/bin/jar 

ln -s /home/jdk1.6.0_13/bin/javac /usr/bin/javac 
ln -s /home/jdk1.6.0_13/bin/jar /usr/bin/jar 

Таким образом, ваш linux может найти java && javac в /usr/bin

0 голосов
/ 11 января 2011

Чтобы добавить новый путь к существующей переменной PATH, вам нужно ввести его в Terminal:

PATH=`echo $path`:/your/new/path
export PATH

Если вы потеряли исходную переменную PATH, вы можете восстановить ее, введя следующее:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
export PATH
...