简体   繁体   中英

Installing Oracle Java on Linux Mint (instead of using OpenJDK) — possible problems with linking

I apologize in advance for the long query that'll follow, but I'm very lost and wanted to include all pertinent information.

Here is the system I started with:

Linux Mint 14 Nadia MATE
64-bit Kernel
OpenJDK version 1.7.0_21

I wanted to install Oracle Java 7 and have that be my system default.

Here is what I tried:

1) Downloaded tar file of JDK1.7.0_21
2) Unpacked and moved it into /usr/lib/jvm/jdk1.7.0_21
3) cd /usr/lib/jvm
4) ln -s jdk1.7.0_21 java-7-oracle
5) Created file /usr/lib/jvm/.java-7-oracle.jinfo and proceed to populate it with info such as:

    alias=java-7-oracle
    priority=50
    section=non-free

    jre ControlPanel /usr/lib/jvm/java-7-oracle/jre/bin/ControlPanel

    jre java /usr/lib/jvm/java-7-oracle/jre/bin/java
    jre java_vm /usr/lib/jvm/java-7-oracle/jre/bin/java_vm
    jre javaws /usr/lib/jvm/java-7-oracle/jre/bin/javaws  
    ....  

6) Then, for some perhaps ill-thoughtout reasons, I abandoned this approach in favor of a shorter one that I felt I better understood. So I...

7) Deleted the symlink I had created rm java-7-oracle hoping that it would only remove the symlink. 8) Proceeded to execute the following commands:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.*/bin/java 1065
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.*/bin/javac 1065
sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.7.*/bin/javaws 1065
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.7.*/bin/jar 1065

9) sudo update-alternatives --config java And I picked this option:
/usr/lib/jvm/jdk1.7.0_21/bin/java 1065 manual mode

Afterwards, when I ran java -version I got errors saying Java Virtual Machine could not be started.

Then, I went in and messed around a bit more, changed the priorities to 1, etc.. I even made the following changes to my /etc/profile :
JAVA_HOME=/usr/lib/jvm/jdk1.7.0_17
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME
export PATH
And loaded it: . /etc/profile . /etc/profile

But I still can't get java to work. The difference, though is that now when I run java -version I get:
bash: /usr/bin/java: No such file or directory
I've also tried specifying the absolute path: /usr/lib/jvm/jdk1.7.0_21/bin/java -version
But to no avail.

Can someone please help me? I feel quite lost at this point.
And I can't seem to revert back to OpenJDK either.

Thanks!

The problem, it turns out was that I was using a 32-bit version of Java with my 64-bit system.
So I removed /usr/lib/jvm/jdk1.7.0_21

Then I went to Oracle and downloaded Java for Linux x64.
(I'd initially been mislead by their ambiguous "Java for Linux x86" labeling because my system was x86-64. Apparently their x86 refers to 32-bit systems.)

After downloading the correct 64-bit version, I followed the instructions from this site:

http://install-climber.blogspot.com/2013/02/linux-mint-14-nadia-mate-amd64-howto-install-oracle-java-jdk7.html

1. Check to see if your Ubuntu Linux operating system architecture is 32-bit or 64-bit , open up a terminal and run the following command below. Type/Copy/Paste: file /sbin/init Note the bit version of your Ubuntu Linux operating system architecture it will display whether it is 32-bit or 64-bit.

2. Check if you have Java installed on your system. To do this, you will have to run the Java version command from terminal. Open up a terminal and enter the following command: Type/Copy/Paste: java -version If you have OpenJDK installed on your system it may look like this: java version "1.7.0_15" OpenJDK Runtime Environment (IcedTea6 1.10pre) (7b15~pre1-0lucid1) OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode) If you have OpenJDK installed on your system, you have the wrong vendor version of Java installed for this exercise.

3. Completely remove the OpenJDK/JRE from your system and create a directory to hold your Oracle Java JDK/JRE binaries. This will prevent system conflicts and confusion between different vendor versions of Java. For example, if you have the OpenJDK/JRE installed on your system, you can remove it by typing the following at the command line:

Type/Copy/Paste:

sudo apt-get purge openjdk-\\*

This command will completely remove OpenJDK/JRE from your system

Type/Copy/Paste:

sudo mkdir -p /usr/local/java

This command will create a directory to hold your Oracle Java JDK and JRE binaries.

4. Download the Oracle Java JDK for Linux. Make sure you select the correctcompressed binaries for your system architecture 32-bit or 64-bit (which end in tar.gz). For example, if you are on Ubuntu Linux 32-bit operating system download 32-bit Oracle Java binaries. For example, if you are on Ubuntu Linux 64-bit operating system download 64-bit Oracle Java binaries. Optional, Download the Oracle Java JDK Documentation Select jdk-7u45-apidocs.zip Important Information: 64-bit Oracle Java binaries do not work on 32-bit Ubuntu Linux operating systems, you will receive multiple system error messages, if you attempt to install 64-bit Oracle Java on 32-bit Ubuntu Linux.

5. Copy the Oracle Java binaries into the /usr/local/java directory. In most cases, the Oracle Java binaries are downloaded to: /home/"your_user_name"/Downloads. 32-bit Oracle Java on 32-bit Ubuntu Linux installation instructions:

Type/Copy/Paste:

cd /home/"your_user_name"/Downloads

Type/Copy/Paste:

sudo cp -r jdk-7u45-linux-i586.tar.gz /usr/local/java

Type/Copy/Paste:

cd /usr/local/java

64-bit Oracle Java on 64-bit Ubuntu Linux installation instructions: Type/Copy/Paste:

cd /home/"your_user_name"/Downloads

Type/Copy/Paste:

sudo cp -r jdk-7u45-linux-x64.tar.gz /usr/local/java

Type/Copy/Paste:

cd /usr/local/java

6. Run the following commands on the downloaded Oracle Java tar.gz files. Make sure to do this as root in order to make them executable for all users on your system. To open a root terminal type sudo -s you will be prompted for your logon password .

32-bit Oracle Java on 32-bit Ubuntu Linux installation instructions:

Type/Copy/Paste:

 sudo chmod a+x jdk-7u25-linux-i586.tar.gz

64-bit Oracle Java on 64-bit Ubuntu Linux installation instructions:

Type/Copy/Paste:

sudo chmod a+x jdk-7u45-linux-x64.tar.gz

7. Unpack the compressed Java binaries, in the directory /usr/local/java 32-bit Oracle Java on 32-bit Ubuntu Linux installation instructions:

Type/Copy/Paste:

sudo tar xvzf jdk-7u25-linux-i586.tar.gz

64-bit Oracle Java on 64-bit Ubuntu Linux installation instructions:

Type/Copy/Paste:

sudo tar xvzf jdk-7u45-linux-x64.tar.gz

8. Double-check your directories. At this point, you should have two uncompressed binary directories in /usr/local/java for the Java JDK/JRE listed as: Type/Copy/Paste: ls -a

jdk1.7.0_45

9. Edit the system PATH file /etc/profile and add the following system variables to your system path. Use nano, gedit or any other text editor, as root, open up /etc/profile .

Type/Copy/Paste:

sudo gedit /etc/profile

or Type/Copy/Paste:

sudo nano /etc/profile

10. Scroll down to the end of the file using your arrow keys and add the following lines below to the end of your /etc/profile file: Type/Copy/Paste:

JAVA_HOME=/usr/local/java/jdk1.7.0_45
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH

11. Save the /etc/profile file and exit.

12. Inform your Ubuntu Linux system where your Oracle Java JDK/JRE is located. This will tell the system that the new Oracle Java version is available for use.

Type/Copy/Paste:

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.7.0_45/bin/java" 1

this command notifies the system that Oracle Java JRE is available for use

Type/Copy/Paste:

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk1.7.0_45/bin/javac" 1

this command notifies the system that Oracle Java JDK is available for use

Type/Copy/Paste:

sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk1.7.0_45/bin/javaws" 1

this command notifies the system that Oracle Java Web start is available for use

13. Inform your Ubuntu Linux system that Oracle Java JDK/JRE must be the default Java. Type/Copy/Paste:

 sudo update-alternatives --set java /usr/local/java/jdk1.7.0_45/bin/java

this command will set the java runtime environment for the system

Type/Copy/Paste:

sudo update-alternatives --set javac /usr/local/java/jdk1.7.0_45/bin/javac

this command will set the javac compiler for the system

Type/Copy/Paste:

sudo update-alternatives --set javaws /usr/local/java/jdk1.7.0_45/bin/javaws

this command will set Java Web start for the system

14. Reload your system wide PATH /etc/profile by typing the following command: Type/Copy/Paste:

. /etc/profile

Note your system-wide PATH /etc/profile file will reload after reboot of your Ubuntu Linux system

15. Test to see if Oracle Java was installed correctly on your system. Run the following commands and note the version of Java:

16. A successful installation of 32-bit Oracle Java will display:

Type/Copy/Paste:

java -version

This command displays the version of java running on your system You should receive a message which displays: java version "1.7.0_45" Java(TM) SE Runtime Environment (build 1.7.0_25-b25) Java HotSpot(TM) Server VM (build 23.1-b03, mixed mode)

Type/Copy/Paste:

javac -version

This command lets you know that you are now able to compile Java programs from the terminal. You should receive a message which displays: javac 1.7.0_25

**17. A successful installation of Oracle Java 64-bit will display:

Type/Copy/Paste:

java -version

This command displays the version of java running on your system You should receive a message which displays: java version "1.7.0_25" Java(TM) SE Runtime Environment (build 1.7.0_21-b21) Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)

Type/Copy/Paste:

 javac -version

This command lets you know that you are now able to compile Java programs from the terminal. You should receive a message which displays: javac 1.7.0_25

[ https://www.wikihow.com/Install-Oracle-Java-JDK-on-Ubuntu-Linux][1]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM