Aynı Linux makinesinde birden fazla Java ortamı


9

Aynı Linux makinesine birden fazla eşzamanlı Java JDK sürümü kurmanın en verimli yolu nedir?

Mevcut Ubuntu 9.10 Karmic Java6 yüklü iken Java5 gerekir.

Bunun için bir VM kurabileceğimi biliyorum ama alternatifler arıyorum.

Yanıtlar:


5

Linux ikilisini Sun'dan indirirseniz, istediğiniz dizine kurabilirsiniz. O zaman sadece kodunuzdaki bu kütüphanelere bakın ve hazırsınız.

İkili yükleyiciyle, kendi adlandırılmış alt dizinini oluşturur (örneğin, örneğinizde /usr/java/jdk1.5.0_), böylece istediğiniz kadar indirebilirsiniz ve kendilerini uygun şekilde adlandırılmış olarak sıralarlar alt drectories.

Ana java ikilisi / usr / bin içinde yaşar, bu yüzden bunu "java" yazdığınızda java'ya eriştiği noktaya değiştirmek istiyorsanız, o değil, eski olanı / usr / bin dışına taşırsınız. ve yenisini oraya bağla. Yazmak which java, sisteminizdeki varsayılan java'nın ne olduğunu söyleyecektir.

@jldupont: Eşzamanlı yüklemeleri düşündüğümde, aynı makinede yüklü olan birden çok sürümü düşünüyorum, ki yöntemim kesinlikle size verecek. Henüz güncellenmemiş olan şirketten gelen el-işlenmeleri ele almak için üretim kutuma yaklaşık 12 java sürümü yükledim.

Ancak "java" yazdığınızda java'nın yalnızca bir sürümünü edineceksiniz, çünkü '/usr/bin'... bin / java 'için sistem varsayılanı olmayan belirli bir java ikili dosyası alın.


Teşekkürler ama eşzamanlı yüklemelere ihtiyacım var . Bunu nasıl yaparım?
jldupont

Teşekkürler. Şimdi JDK5 / opt içine yükledim ve kendime ortam değişkenlerini ayarlamak için bir bash betiği yazdım ... çalışır gibi görünüyor. Bundan daha acı verici olacağını düşündüm!
jldupont

@jldupont: Aslında bu linux ile ilgili sevdiğim şeylerden biri ... Yolda almak için bir kayıt defteri olmadığından, aynı şeyi yüz kez yükleyebilirsiniz ve emin olduğunuz sürece sorun değil ortak dosyaların üzerine yazmamak. Apache'nin birden fazla farklı sürümünü (örneğin) çalıştıran birçok insan tanıyorum. Kendim Perl ve Java'nın birden fazla sürümünü çalıştırma eğilimindeyim.
Satanicpuppy

1

Sadece .bin dosyasını oracle'dan indirin ve yürütün, daha sonra kendini bir klasöre çıkarır. Bu klasörü (örn. jdk1.6.0_32) / Usr / lib / jvm klasörüne ve ardından setjavajava sürümlerini değiştirmek için kullandığım komut dosyasına taşıyın . Ancak exportifadeler nedeniyle aynı terminalde kalmanız gerekiyor. Ayrıca bazı küçük jvm araçları ayarlanmamış olabilir, ancak çoğu durumda çalışması gerekir. Ayrıca ben bir kabuk çaylak yani daha iyi bir olasılık varsa lütfen beni düzelt :-) Benim için kod:

#!/bin/bash
# shouldnt be used in a loop, else the path may become too long

if [[ $(/usr/bin/id -u) -ne 0 ]]; then
    echo "Not running as root"
    exit
fi

case "$1" in
  6)
    echo "Setting Java version 6"
    export PATH=/usr/lib/jvm/jdk1.6.0_32/bin:$PATH
    export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_32
    sudo rm /usr/bin/java
    sudo rm /usr/bin/javac
    sudo rm /usr/bin/javadoc
    sudo rm /usr/bin/javah
    sudo rm /usr/bin/javap
    sudo rm /usr/bin/javaws
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/java /usr/bin/java
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javac /usr/bin/javac
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javadoc /usr/bin/javadoc
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javah /usr/bin/javah
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javap /usr/bin/javap
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javaws /usr/bin/javaws
    javac -version    
    java -version
    ;;
  7)
    echo "Setting Java version 7"
    export PATH=/usr/lib/jvm/java-7-openjdk/bin:$PATH
    export JAVA_HOME=/usr/lib/jvm/java-7-openjdk/
    sudo rm /usr/bin/java
    sudo rm /usr/bin/javac
    sudo rm /usr/bin/javadoc
    sudo rm /usr/bin/javah
    sudo rm /usr/bin/javap
    sudo rm /usr/bin/javaws
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/java /usr/bin/java
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javac /usr/bin/javac
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javadoc /usr/bin/javadoc
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javah /usr/bin/javah
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javap /usr/bin/javap
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javaws /usr/bin/javaws
    javac -version
    java -version
    ;;
  *)
    echo "Usage: $0 {6|7}"

esac
exit 0

Hoffner İhracat beyanlarının nasıl çalışacağından emin değilim. Denediğimde çalışmıyorlar.
SureshS
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.