Есть ли способ обновить все связанные с Java альтернативы?

ping и traceroute используют протокол ICMP. Подобно UDP и TCP, это доступно через обычный сокет API. Только номера портов UDP и TCP менее 1024 защищены от использования, кроме как от root. ICMP доступен всем пользователям.

Если вы действительно хотите посмотреть, как работают ping и traceroute, вы можете загрузить пример реализации кода C из CodeProject.

Короче говоря, они просто открыть ICMP-сокет, а traceroute изменяет приращения TTL с помощью setsockopt до достижения цели.

Источник: CodeProject

48
задан 25 May 2012 в 00:37

23 ответа

Ах, нашел ответ вскоре после публикации.

Фокус в том, чтобы использовать update-java-alternatives (из пакета java-common).

Итак, чтобы перейти на OpenJDK 6 до 7, я использовал update-java-alternatives -l, чтобы получить список альтернатив Java, а затем использовал sudo update-java-alternatives -s java-1.7.0-openjdk-amd64 для JDK.

ПРИМЕЧАНИЕ. В приведенной выше команде были сброшены следующие ошибки:

update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
[d4 ] Это связано с тем, что плагин openjdk по умолчанию не установлен. Чтобы исправить прогон sudo apt-get install icedtea-7-plugin и повторить update-java-alternatives.

66
ответ дан 25 May 2018 в 11:00
  • 1
    Вам не нужно устанавливать плагин (и вы не должны, если вам это не нужно, из соображений безопасности). update-java-alternatives изменяет все другие альтернативы java, даже если параметр плагина вызывает ошибку. – daniel kullmann 16 April 2013 в 17:17
  • 2
    Что с JVM Oracles? Как я могу это использовать? И конкретные исполняемые файлы JDK? – keiki 19 March 2014 в 01:42
  • 3
    Запуск update-java-alternatives --set java-1.8.0-openjdk-amd64 У меня все еще есть default-java -> /usr/lib/jvm/java-7-oracle. Это вызвано ошибкой no alternatives for mozilla-javaplugin.so? Как я могу это изменить? – lony 17 January 2017 в 01:06

Трюк заключается в использовании update-java-alternatives (из пакета java-common).

Итак, чтобы перейти на OpenJDK с 6 по 7, я использовал update-java-alternatives -l, чтобы получить список альтернатив Java, а затем использовал sudo update-java-alternatives -s java-1.7.0-openjdk-amd64 для JDK.

ПРИМЕЧАНИЕ. В приведенной выше команде были сброшены следующие ошибки:

update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so

Это связано с тем, что плагин openjdk не установлен по умолчанию. Исправить пробег

sudo apt-get install icedtea-7-plugin

и повторить update-java-alternatives.

68
ответ дан 25 July 2018 в 18:46

Трюк заключается в использовании update-java-alternatives (из пакета java-common).

Итак, чтобы перейти на OpenJDK с 6 по 7, я использовал update-java-alternatives -l, чтобы получить список альтернатив Java, а затем использовал sudo update-java-alternatives -s java-1.7.0-openjdk-amd64 для JDK.

ПРИМЕЧАНИЕ. В приведенной выше команде были сброшены следующие ошибки:

update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so

Это связано с тем, что плагин openjdk не установлен по умолчанию. Исправить пробег

sudo apt-get install icedtea-7-plugin

и повторить update-java-alternatives.

68
ответ дан 2 August 2018 в 00:55

Трюк заключается в использовании update-java-alternatives (из пакета java-common).

Итак, чтобы перейти на OpenJDK с 6 по 7, я использовал update-java-alternatives -l, чтобы получить список альтернатив Java, а затем использовал sudo update-java-alternatives -s java-1.7.0-openjdk-amd64 для JDK.

ПРИМЕЧАНИЕ. В приведенной выше команде были сброшены следующие ошибки:

update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so

Это связано с тем, что плагин openjdk не установлен по умолчанию. Исправить пробег

sudo apt-get install icedtea-7-plugin

и повторить update-java-alternatives.

68
ответ дан 4 August 2018 в 16:26

Трюк заключается в использовании update-java-alternatives (из пакета java-common).

Итак, чтобы перейти на OpenJDK с 6 по 7, я использовал update-java-alternatives -l, чтобы получить список альтернатив Java, а затем использовал sudo update-java-alternatives -s java-1.7.0-openjdk-amd64 для JDK.

ПРИМЕЧАНИЕ. В приведенной выше команде были сброшены следующие ошибки:

update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so

Это связано с тем, что плагин openjdk не установлен по умолчанию. Исправить пробег

sudo apt-get install icedtea-7-plugin

и повторить update-java-alternatives.

68
ответ дан 6 August 2018 в 01:05

Трюк заключается в использовании update-java-alternatives (из пакета java-common).

Итак, чтобы перейти на OpenJDK с 6 по 7, я использовал update-java-alternatives -l, чтобы получить список альтернатив Java, а затем использовал sudo update-java-alternatives -s java-1.7.0-openjdk-amd64 для JDK.

ПРИМЕЧАНИЕ. В приведенной выше команде были сброшены следующие ошибки:

update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so

Это связано с тем, что плагин openjdk не установлен по умолчанию. Исправить пробег

sudo apt-get install icedtea-7-plugin

и повторить update-java-alternatives.

68
ответ дан 10 August 2018 в 07:13

Трюк заключается в использовании update-java-alternatives (из пакета java-common).

Итак, чтобы перейти на OpenJDK с 6 по 7, я использовал update-java-alternatives -l, чтобы получить список альтернатив Java, а затем использовал sudo update-java-alternatives -s java-1.7.0-openjdk-amd64 для JDK.

ПРИМЕЧАНИЕ. В приведенной выше команде были сброшены следующие ошибки:

update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so

Это связано с тем, что плагин openjdk не установлен по умолчанию. Исправить пробег

sudo apt-get install icedtea-7-plugin

и повторить update-java-alternatives.

68
ответ дан 15 August 2018 в 19:12
  • 1
    Вам не нужно устанавливать плагин (и вы не должны, если вам это не нужно, из соображений безопасности). update-java-alternatives изменяет все другие альтернативы java, даже если параметр плагина вызывает ошибку. – daniel kullmann 16 April 2013 в 17:17
  • 2
    Что с JVM Oracles? Как я могу это использовать? И конкретные исполняемые файлы JDK? – keiki 19 March 2014 в 01:42
  • 3
    Запуск update-java-alternatives --set java-1.8.0-openjdk-amd64 У меня все еще есть default-java -> /usr/lib/jvm/java-7-oracle. Это вызвано ошибкой no alternatives for mozilla-javaplugin.so? Как я могу это изменить? – lony 17 January 2017 в 01:06

jbro задал тот же вопрос на http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done

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

Я немного изменил код, так как он не позволяет вам делать изменения перед установкой их. Я добавил еще две строки следующим образом:

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done
3
ответ дан 25 May 2018 в 11:00

Для Oracle JVM запустите это:

sudo update-java-alternatives -s java-7-oracle
1
ответ дан 25 May 2018 в 11:00

jbro задал тот же вопрос в http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done

Если нет лучшего ответа, это похоже на прочное обходное решение, но я предполагаю, что для update-alternatives должен быть лучший способ справиться с этим.

Я немного изменил код, так как он не сделайте изменения перед их установкой. Я добавил еще две строки следующим образом:

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done
3
ответ дан 25 July 2018 в 18:46

Для JVM Oracle запустите это:

sudo update-java-alternatives -s java-7-oracle
1
ответ дан 2 August 2018 в 00:55

jbro задал тот же вопрос в http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done

Если нет лучшего ответа, это похоже на прочное обходное решение, но я предполагаю, что для update-alternatives должен быть лучший способ справиться с этим.

Я немного изменил код, так как он не сделайте изменения перед их установкой. Я добавил еще две строки следующим образом:

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done
3
ответ дан 2 August 2018 в 00:55

Для JVM Oracle запустите это:

sudo update-java-alternatives -s java-7-oracle
1
ответ дан 4 August 2018 в 16:26

jbro задал тот же вопрос в http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done

Если нет лучшего ответа, это похоже на прочное обходное решение, но я предполагаю, что для update-alternatives должен быть лучший способ справиться с этим.

Я немного изменил код, так как он не сделайте изменения перед их установкой. Я добавил еще две строки следующим образом:

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done
3
ответ дан 4 August 2018 в 16:26

Для JVM Oracle запустите это:

sudo update-java-alternatives -s java-7-oracle
1
ответ дан 6 August 2018 в 01:05

jbro задал тот же вопрос в http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done

Если нет лучшего ответа, это похоже на прочное обходное решение, но я предполагаю, что для update-alternatives должен быть лучший способ справиться с этим.

Я немного изменил код, так как он не сделайте изменения перед их установкой. Я добавил еще две строки следующим образом:

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done
3
ответ дан 6 August 2018 в 01:05

Для JVM Oracle запустите это:

sudo update-java-alternatives -s java-7-oracle
1
ответ дан 7 August 2018 в 18:32

jbro задал тот же вопрос в http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done

Если нет лучшего ответа, это похоже на прочное обходное решение, но я предполагаю, что для update-alternatives должен быть лучший способ справиться с этим.

Я немного изменил код, так как он не сделайте изменения перед их установкой. Я добавил еще две строки следующим образом:

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done
3
ответ дан 7 August 2018 в 18:32

Для JVM Oracle запустите это:

sudo update-java-alternatives -s java-7-oracle
1
ответ дан 10 August 2018 в 07:13

jbro задал тот же вопрос в http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done

Если нет лучшего ответа, это похоже на прочное обходное решение, но я предполагаю, что для update-alternatives должен быть лучший способ справиться с этим.

Я немного изменил код, так как он не сделайте изменения перед их установкой. Я добавил еще две строки следующим образом:

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done
3
ответ дан 10 August 2018 в 07:13

Для JVM Oracle запустите это:

sudo update-java-alternatives -s java-7-oracle
1
ответ дан 15 August 2018 в 19:12

jbro задал тот же вопрос в http://ubuntuforums.org/showthread.php?t=1817528 и написал сценарий для этой проблемы,

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done

Если нет лучшего ответа, это похоже на прочное обходное решение, но я предполагаю, что для update-alternatives должен быть лучший способ справиться с этим.

Я немного изменил код, так как он не сделайте изменения перед их установкой. Я добавил еще две строки следующим образом:

#!/bin/bash

update-alternatives --get-selections | grep -i openjdk |
while read line
do
    alternative=$(echo $line | awk '{print $1}')
    path=$(echo $line | awk '{print $3}')
    newpath=$(echo $path | sed -e 's/java-6-openjdk/java-6-sun/')
    status=unchanged
    if [ -f $newpath ]
    then
    status=modified
echo "-> update-alternatives --install /usr/bin/$alternative $alternative $newpath 1"
update-alternatives --install /usr/bin/$alternative $alternative $newpath 1
    echo "-> update-alternatives --set $alternative $newpath"
    update-alternatives --set $alternative $newpath
    else
    echo "$alternative unchanged"
    fi
done
3
ответ дан 15 August 2018 в 19:12

& Lt; TL; DR> update-java-alternatives использует файл .jinfo, чтобы определить , какие альтернативы переключаются, но также ожидает, что они будут настроены отдельно.

Создайте новый файл .jinfo и записи update-alterntive, если ваш загруженный JRE / JDK не переключается с помощью update-java-alternatives

[Подробнее ]

Чтобы настроить его вручную:

  1. Декомпрессируйте новый jdk вместе с существующим jdk в /usr/lib/jvm/
  2. Создайте файл .jdkname.jinfo дублирование другого файла .jinfo в папке (или захват одного из другого Ubuntu install: вы после шаблона, как и все остальное). Имя файла .jdkname.jinfo должно соответствовать имени папки jdk. Измените контент, чтобы задать заголовок (имена) и пути к файлам (записи программы) в соответствии с вашей новой установкой. Удалите все строки, относящиеся к программам, опущенным в вашей версии, и добавьте строки для новых программ в /bin
  3. Создайте альтернативы для всех программ, которые теперь находятся в вашем пакете .jinfo с этим шаблоном:
    sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/**jdkname**/bin/java 100
    
    (Несколько связанных ответов выписали это из содержимого / bin или вы можете выполнить поиск / замену regexp в вашем файле .jinfo, чтобы сгенерировать команды сценария.) Обратите внимание, что 100 - это только приоритет, который рассматривается при настройке версии jdk с использованием автоматического флага.
  4. Проверьте альтернативы java и переключитесь на использование JDK.
    update-java-alternatives -l  
    update-java-alternatives -s jdkname  
    
    Обратите внимание, что некоторые JDK не включают JRE, поэтому либо добавьте его, либо удалите эти записи jinfo.
0
ответ дан 9 October 2018 в 08:21

Другие вопросы по тегам:

Похожие вопросы: