Невозможно установить новую версию Java на Linux

1

Версия java на сервере была 1.6.0_37, я использовал yum install java-1.7.0-openjdk для установки Java-1.7, но после использования этой команды, когда я использовал java -version, версия Java все еще 1.6.0. Как изменить его на 1.7?

# yum install java-1.7.0-openjdk


java -version

java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)

Я также выполнил следующие шаги, но java-версия все еще 1.6.0_37

Downloading Latest Java Archive

Java latest archive is available on its official site. We recommend to download latest version of Java from Oracle official website.
For 64 Bit:-

# cd /opt/
# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u75-b13/jdk-7u75-linux-x64.tar.gz"

For 32 Bit:-

# cd /opt/
# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u75-b13/jdk-7u75-linux-i586.tar.gz"

Note: In any case if above command failed to download and you need to download java through Linux terminal, watch below screen cast ( http://screencast.com/t/wf9bQ0XjDPxT ), You are required a graphical browser.

After completing download, Extract archive using following command. Use archive file as per your system configuration. For this example we are using CentOS 6.6 (64 bit) system.

# tar xzf jdk-7u75-linux-x64.tar.gz

Install Java with Alternatives

After extracting Java archive file, we just need to set up to use newer version of Java using alternatives. Use the following commands to do it.

# cd /opt/jdk1.7.0_75/
# alternatives --install /usr/bin/java java /opt/jdk1.7.0_75/bin/java 2
# alternatives --config java

There are 4 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
 + 2           /opt/jdk1.7.0_60/bin/java
   3           /opt/jdk1.7.0_72/bin/java
   4           /opt/jdk1.7.0_75/bin/java

Enter to keep the current selection[+], or type selection number: 4 [Press Enter]

Now you may also required to set up javac and jar commands path using alternatives command.

# alternatives --install /usr/bin/jar jar /opt/jdk1.7.0_75/bin/jar 2
# alternatives --install /usr/bin/javac javac /opt/jdk1.7.0_75/bin/javac 2
# alternatives --set jar /opt/jdk1.7.0_75/bin/jar
# alternatives --set javac /opt/jdk1.7.0_75/bin/javac 

Check Installed Java Version

Use following command to check which version of Java is currently being used by system.

# java -version

java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

Configuring Environment Variables

Most of Java based applications uses environment variables to work. Use following commands to set up these variable properly. Its also good to add following commands to any start-up script like ~/.bashrc or ~/.bash_profile.

    Setup JAVA_HOME Variable

    # export JAVA_HOME=/opt/jdk1.7.0_75

    Setup JRE_HOME Variable

    # export JRE_HOME=/opt/jdk1.7.0_75/jre

    Setup PATH Variable

    # export PATH=$PATH:/opt/jdk1.7.0_75/bin:/opt/jdk1.7.0_75/jre/bin

Я также использовал следующий, но все еще показывает предыдущую версию

root@server [/]# yum search java | grep -i --color JDK
ldapjdk-javadoc.x86_64 : Javadoc for ldapjdk
icedtea-web.x86_64 : Additional Java components for OpenJDK - Java browser
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle
ldapjdk.x86_64 : The Mozilla LDAP Java SDK
root@server [/]# yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: centos.hyve.com
 * extras: centos.hyve.com
 * updates: centos.hyve.com
Package 1:java-1.7.0-openjdk-1.7.0.75-2.5.4.0.el6_6.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package java-1.7.0-openjdk-devel.x86_64 1:1.7.0.75-2.5.4.0.el6_6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                    Arch     Version                    Repository
                                                                           Size
================================================================================
Installing:
 java-1.7.0-openjdk-devel   x86_64   1:1.7.0.75-2.5.4.0.el6_6   updates   9.4 M

Transaction Summary
================================================================================
Install       1 Package(s)

Total download size: 9.4 M
Installed size: 36 M
Is this ok [y/N]: y
Downloading Packages:
java-1.7.0-openjdk-devel-1.7.0.75-2.5.4.0.el6_6.x86_64.r | 9.4 MB     00:03     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : 1:java-1.7.0-openjdk-devel-1.7.0.75-2.5.4.0.el6_6.x86_64     1/1 
  Verifying  : 1:java-1.7.0-openjdk-devel-1.7.0.75-2.5.4.0.el6_6.x86_64     1/1 

Installed:
  java-1.7.0-openjdk-devel.x86_64 1:1.7.0.75-2.5.4.0.el6_6                      

Complete!
root@server [/]# ls -l /usr/lib/vim
/bin/ls: cannot access /usr/lib/vim: No such file or directory
root@server [/]# ls -l /usr/lib/jvm/
total 12
drwxr-xr-x  3 root root 4096 Feb  6 00:03 ./
drwxr-xr-x 28 root root 4096 Feb  5 22:47 ../
lrwxrwxrwx  1 root root   32 Feb  6 00:03 java-1.7.0 -> /etc/alternatives/java_sdk_1.7.0/
drwxr-xr-x  7 root root 4096 Feb  6 00:03 java-1.7.0-openjdk-1.7.0.75.x86_64/
lrwxrwxrwx  1 root root   34 Feb  6 00:03 java-1.7.0-openjdk.x86_64 -> java-1.7.0-openjdk-1.7.0.75.x86_64/
lrwxrwxrwx  1 root root   34 Feb  6 00:03 java-openjdk -> /etc/alternatives/java_sdk_openjdk/
lrwxrwxrwx  1 root root   21 Feb  5 23:52 jre -> /etc/alternatives/jre/
lrwxrwxrwx  1 root root   27 Feb  5 22:47 jre-1.7.0 -> /etc/alternatives/jre_1.7.0/
lrwxrwxrwx  1 root root   38 Feb  5 22:47 jre-1.7.0-openjdk.x86_64 -> java-1.7.0-openjdk-1.7.0.75.x86_64/jre/
lrwxrwxrwx  1 root root   29 Feb  5 22:47 jre-openjdk -> /etc/alternatives/jre_openjdk/
root@server [/]# vim .bashrc
root@server [/]# java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)
root@server [/]# cd $HOME
root@server [~]# vim .bashrc

Содержание.bashrc

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
export JAVA_HOME="/usr/lib/jvm/jre-1.7.0-openjdk.x86_64"

В настоящее время выход из.bashrc следующий, но одна и та же версия Java все еще используется

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
export JAVA_HOME="/usr/lib/jvm/jre-1.7.0-openjdk.x86_64"
export PATH=$PATH:$JAVA_HOME\bin
  • 0
    Почему бы не использовать официальную Oracle Java?
  • 0
    @ Джек Вот учебник и вот загрузка
Показать ещё 8 комментариев
Теги:
openjdk

2 ответа

1
Лучший ответ

Обычно я устанавливаю jdk в Linux и получаю такую проблему, как ваша. Я решаю, редактируя файл ~/.bash_profile:

JAVA_HOME=/opt/jdk1.7.0_75 
          #this should be point to your jdk directory
export JAVA_HOME

PATH=$JAVA_HOME/bin:$PATH
export PATH

Примечание: обратите внимание, что вы ставите $JAVA_HOME/bin до $PATH при переопределении PATH

Затем запустите команду ниже, чтобы перезагрузить файл .bash_profile

. ~/.bash_profile

Затем вы можете снова открыть свой терминал и проверить свою версию Java.

  • 0
    Я совершенно сбит с толку, что я должен сделать с bashrc, а затем удалить добавленные строки?
  • 0
    Ах, вы можете делать все выше на .bashrc вместо .bash_profile . Забудьте bash_profile . Давайте попробуем и дайте мне знать, что это может быть решено или нет.
Показать ещё 4 комментария
0

Я достиг этого же, добавив следующее содержимое в /etc/profile в CentOS 7. Кроме того, я заменил openjdk официальным JDK-8 Oracle, но это не имеет значения в этом смысле.

Я предлагаю вам сделать изменения, как я сделал здесь, в /etc/profile. Замените фактический путь/местоположение в зависимости от вашего системного местоположения, в котором установлена Java:

export JAVA_HOME=/usr/java/default 
 # point location before Java bin folder in your system
export JRE_HOME=/usr/java/default/jre 
 # point location before JRE bin folder in your system
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 
 # append those 2 locations to the PATH environment variable

Где JAVA_HOME был путь до установленного каталога Java /bin как вы можете заметить из первой команды экспорта выше, JRE_HOME был путь до JRE /bin как вы можете заметить из второй вышеприведенной команды экспорта.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню