Поиск по блогу

вторник, 12 мая 2015 г.

Как в Linux переключаться между разными версиями java?

Все началось с того, что команда java -version сообщила мне, что у меня в дистрибутиве стоит 6-ая версия, а для установки нового сервера требовалась 7-я. Я года два, как не подходил к java, потому решил не умничать, а найти мануал в инете... Мануалы нашел (ссылки здесь), но оказалось, что у меня уже стоит седьмая версия, чтобы переключиться на нее, нужно было использовать update-alternatives --config java

Установка Java на Debian/Ubuntu/Mint - в этой ссылке ответын на все впоросы, следующие две на специализированные сервисы ответов Linux (дабы помнить про них)
Installing openjdk-7-jdk does not update java (which is still version 1.6)
how to install openjdk

Сначала все выглядело вот так

In [ ]:
root@kali:/home/kiss# java -version
java version "1.6.0_35"
OpenJDK Runtime Environment (IcedTea6 1.13.7) (6b35-1.13.7-1~deb7u1)
OpenJDK Server VM (build 23.25-b01, mixed mode)

Я подумал, что раз отно так, то это жжжж неспроста. В Kali полно java программ, так что мне нельзя сносить старую java. Лучше бы найти мануал, в котором все эти мелководные камни описаны. Потратил довольно много времени на всякие вредные описания oracle java и дебиановские штучки. Голова стала пухнуть, наверное поэтому от отчаяния набрал поиск на русском. И, о счастье, нашел исчерпывающий мануал (ссылка выше - Установка Java на Debian/Ubuntu/Mint).

In [ ]:
! update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                           Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      manual mode
* 2            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java   1051      manual mode

Press enter to keep the current choice[*], or type selection number: 

Запускаешь и переключаешься, потом снова запускаешь и уже видишь, что активна 7-ая версия, но при запуске компьютера будет активизироваться 6-ая, поскольку у нее auto mode. Мне это и надо.

In [1]:
!java -version
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-1~deb7u1)
OpenJDK Server VM (build 24.79-b02, mixed mode)

Ниже распечатаем справочники, дабы посмотреть при случае, что еще можно напереключать...

In [ ]:
root@kali:/home/kiss# update-alternatives  --list java
/usr/lib/jvm/java-6-openjdk-i386/jre/bin/java
/usr/lib/jvm/java-7-openjdk-i386/jre/bin/java
In [2]:
!java -h
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)
where options include:
    -d32   use a 32-bit data model if available
    -d64   use a 64-bit data model if available
    -client   to select the "client" VM
    -server   to select the "server" VM
    -zero   to select the "zero" VM
    -jamvm   to select the "jamvm" VM
    -avian   to select the "avian" VM
    -dcevm   to select the "dcevm" VM
    -hotspot   is a synonym for the "client" VM  [deprecated]
                  The default VM is server,
                  because you are running on a server-class machine.


    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  A : separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D<name>=<value>
                  set a system property
    -verbose:[class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:<value>
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -no-jre-restrict-search
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions with specified granularity
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions with specified granularity
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:hprof
                  see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument
    -splash:<imagepath>
                  show splash screen with specified image
See http://www.oracle.com/technetwork/java/javase/documentation/index.html for more details.
In [ ]:
root@kali:/home/kiss# update-alternatives --help
Usage: update-alternatives [<option> ...] <command>

Commands:
  --install <link> <name> <path> <priority>
    [--slave <link> <name> <path>] ...
                           add a group of alternatives to the system.
  --remove <name> <path>   remove <path> from the <name> group alternative.
  --remove-all <name>      remove <name> group from the alternatives system.
  --auto <name>            switch the master link <name> to automatic mode.
  --display <name>         display information about the <name> group.
  --query <name>           machine parseable version of --display <name>.
  --list <name>            display all targets of the <name> group.
  --get-selections         list master alternative names and their status.
  --set-selections         read alternative status from standard input.
  --config <name>          show alternatives for the <name> group and ask the
                           user to select which one to use.
  --set <name> <path>      set <path> as alternative for <name>.
  --all                    call --config on all alternatives.

<link> is the symlink pointing to /etc/alternatives/<name>.
  (e.g. /usr/bin/pager)
<name> is the master name for this link group.
  (e.g. pager)
<path> is the location of one of the alternative target files.
  (e.g. /usr/bin/less)
<priority> is an integer; options with higher numbers have higher priority in
  automatic mode.

Options:
  --altdir <directory>     change the alternatives directory.
  --admindir <directory>   change the administrative directory.
  --log <file>             change the log file.
  --force                  allow replacing files with alternative links.
  --skip-auto              skip prompt for alternatives correctly configured
                           in automatic mode (relevant for --config only)
  --verbose                verbose operation, more output.
  --quiet                  quiet operation, minimal output.
  --help                   show this help message.
  --version                show the version.


Посты чуть ниже также могут вас заинтересовать

Комментариев нет:

Отправить комментарий