4
java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.13) (6b18-1.8.13-0+squeeze2)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

Кажется, нет простого способа поиска пакетов в apt, поэтому я использую dpkg для поиска пакетов, связанных с Java:

# dpkg --get-selections | less | grep java
ca-certificates-java            install
java-common                     install
javascript-common               install
libaccess-bridge-java           install
libaccess-bridge-java-jni       install
libdb4.7-java-gcj               deinstall
libhsqldb-java-gcj              deinstall
sun-java6-bin                   deinstall
sun-java6-jre                   deinstall
tzdata-java                     install

Я перехожу к удалению java-common, однако после его завершения java все еще установлен, и java -version по-прежнему показывает то же самое.

Ничего не меняется, пакет java-common все еще появляется в поиске dpkg. Что мне не хватает?

Я также удалил OpenJDK, который, казалось, установил его как "deinstall":

# dpkg --get-selections | less | grep openjdk
openjdk-6-jre                   deinstall
openjdk-6-jre-headless          install
openjdk-6-jre-lib               install

Ява все еще там.

# java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.13) (6b18-1.8.13-0+squeeze2)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

3 ответа3

9

Для меня это было:

sudo apt-get remove openjdk-6*
sudo apt-get remove icedtea*
2

Я столкнулся с этим, потому что я работаю с инструкцией по программированию для Android, которая хочет использовать определенные Java SE и JRE (8u121) и просит удалить все другие java-пакеты перед продолжением установки. Итак, после прочтения вышеупомянутых идей я пошел с:

sudo apt-get remove openjdk*

и результат был:

bryan@kali:~$ java -version
bash: /usr/bin/java: No such file or directory

Таким образом, вышесказанное говорит о том, что ни одна из версий Java не найдена. Какой ОП хотел сделать (я думаю).

В случае, если кто-то найдет этот поток, потому что он удаляет Java, чтобы установить старую версию, я включил пошаговое руководство, которое нашел. Первые два кода помогут вам установить его, если у вас нет графического интерфейса. Если у вас есть тарбол, пропустите его. В последнем кодовом блоке есть некоторые части, которые вам нужно будет отредактировать, если вы не устанавливаете мою версию.


{начать копирование / вставку}

В случае, если вы пытаетесь установить Java JDK удаленно и не имеете абсолютно никакого доступа к графическому интерфейсу пользователя и веб-браузеру, используйте следующий метод curl для загрузки Java JDK с помощью командной строки.

Во-первых, получите правильный URL-адрес для загрузки с помощью команды curl:

$ curl -s http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html | grep "otn-pub" | cut -d \" -f12

Приведенная выше команда выводит несколько URL для вашего выбора. Чтобы начать загрузку требуемого файла Java, скопируйте его URL-адрес и начните загрузку с помощью команды curl, принимая запрашиваемую лицензию Jave. Например:

$ curl -LOb "oraclelicense=a" http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz

Установка Java JDK На этом этапе у нас должен быть соответствующий архив Java JDK в нашем текущем рабочем каталоге:

$ ls
jdk-8u121-linux-x64.tar.gz

Создайте целевой установочный каталог Java JDK:

# mkdir /opt/java-jdk

Извлеките ранее загруженный архив Java JDK:

# tar -C /opt/java-jdk -zxf jdk-8u121-linux-x64.tar.gz

Установить Oracle Java по умолчанию В настоящее время система не распознает нашу установку Java JDK:

$ update-alternatives --list java
update-alternatives: error: no alternatives for java
$ java
bash: java: command not found

Используйте команду update-alternatives для включения обоих, java и javac, как части среды Java системы.Пожалуйста, замените приведенный ниже путь к двоичным файлам Java, если это необходимо, чтобы отразить загруженную версию Java:

# update-alternatives --install /usr/bin/java java /opt/java-jdk/jdk1.8.0_121/bin/java 1   
update-alternatives: using /opt/java-jdk/jdk1.8.0_121/bin/java to provide /usr/bin/java (java) in auto mode
# update-alternatives --install /usr/bin/javac javac /opt/java-jdk/jdk1.8.0_121/bin/javac 1
update-alternatives: using /opt/java-jdk/jdk1.8.0_121/bin/javac to provide /usr/bin/javac (javac) in auto mode

{конец копирования / вставки}

Итак, после того, как я последовал, я хотел подтвердить, что это работает ...

bryan@kali:~/Desktop$ java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

Это оно! Это то, что мы хотим.

Затем я начал беспокоиться, что «подходящее обновление» может просто отменить то, что я сделал, обновив пакет (не уверен). Поэтому я отложил их. Для удаления удержания: apt-mark unhold.

bryan@kali:~/Desktop$ sudo apt-mark hold openjdk-8*
openjdk-8-jre set on hold.
openjdk-8-jre-headless set on hold.
openjdk-8-doc set on hold.
openjdk-8-jdk set on hold.
openjdk-8-dbg set on hold.
openjdk-8-demo set on hold.
openjdk-8-jdk-headless set on hold.
openjdk-8-source set on hold.
openjdk-8-jre-dcevm set on hold.
openjdk-8-jre-zero set on hold.
-1

Ты пытался:

  1. sudo apt-get remove '*jre*'
  2. sudo apt-get remove '*icedtea*'

Это просто регулярные выражения, которые должны соответствовать чему-либо с "icedtea" или "jre" в названии.
Надеюсь это поможет!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .