2012-01-31 10 views
13

Sadece aşağıdaki komut dosyasını çalıştırdım ve JDK'yı doğru konuma getiriyor ve paketini açıyor. Sorun, her java komutunun (/urs/bin kopyalandığı şekilde) hata vermesidir. Daha sonra, JDK yükleme dizinine cd (şimdi JDK/bin dizinindeyim) aracılığıyla girip çift tıklatarak kontrol edin: ./java -version ve şu numarayı alın: ./java: No such file or directory, ama java orada! JDK üzerindeki ls -l, tüm java istemcilerinin bin kutusunun içinde olduğunu gösterir. ls -l /usr/lib/jvm/jdk1.7.0_02/bin/java RunningJava, listede listeleniyor, ancak yürütme "./java: Böyle bir dosya veya dizin yok" üretir.

#!/bin/bash 
#Author: Yucca Nel http://thejarbar.org 
#Will restart system 
#Modify these variables as needed... 
tempWork=/tmp/work 
locBin=/usr/local/bin 
javaUsrLib=/usr/lib/jvm 

sudo mkdir -p $javaUsrLib 
mkdir -p $tempWork 
cd $tempWork 

#Update this line to reflect newer versions of JDK... 
wget http://download.oracle.com/otn-pub/java/jdk/7u2-b13/jdk-7u2-linux-i586.tar.gz 

#Extract the download 
tar -zxvf $tempWork/* 

#Move it to where it can be found... 

sudo mv -f $tempWork/jdk1.7* $javaUsrLib/ 

sudo ln -f -s $javaUsrLib/jdk1.7*/bin/* /usr/bin/ 
sudo rm -rf $tempWork 
#Update this line to reflect newer versions of JDK... 
export JAVA_HOME="$javaUsrLib/jdk1.7.0_02" 

if ! grep "JAVA_HOME=$javaUsrLib/jdk1.7.0_02" /etc/environment 
then 
    echo "JAVA_HOME=$javaUsrLib/jdk1.7.0_02"| sudo tee -a /etc/environment 
fi 

sudo /sbin/reboot 

exit 0 

bana verir:

[email protected]:~$ -rwxr-xr-x 1 yucca yucca 5654 2011-11-17 22:38 /usr/lib/jvm/jdk1.7.0_02/bin/java da ran: file /usr/lib/jvm/jdk1.7.0_02/bin bir çıkış ile: Bir 32bit çalıştırma ortamı olmadan 64bit sistemde çalıştırıyorsanız

/usr/lib/jvm/jdk1.7.0_02/bin: directory 
+3

Java'yı yeniden yüklemek için yeniden yükleme? Bu "Unix Yolu" değil. –

+0

@MarcB Kullanıcı terminali kapatırsa, ortam (Java ile) kaybolur mu? Scriptim birkaç gün önce çalışmıştı ve bash -x ile koştuğumda jdk paketinin dolu olduğunu görebiliyordum. – thejartender

+0

Hayır,/etc/environment 'öğeleri, JAVA_HOME varyasyonunun tüm yeni kabuklarda görünmesini sağlar. Yeniden başlatma için düşünebilmemin tek nedeni, şu anda çalışan tüm eski 'jvms'lerin sonlandırılmasını sağlamaktır. –

cevap

29

.

varsayarsak ubuntu/debian sorunu:

apt-get install libc6-i386 

Yoksa (muhtemelen en iyi çözümdür) Bu VM paketinin 64bit sürümünü yüklemelisiniz.

Hata iletisi çalışma zamanı bağlayıcıdan/yükleyiciden geliyor. Eğer bir 32 bit uygulama için beklediğiniz hangisi

[Requesting program interpreter: /lib/ld-linux.so.2] 

ve muhtemelen 32bit ortamı yüklü olmayan - yani program interpreter bir ls -l ile kontrol edin: Eğer bir readelf -l java yaparsanız gibi bir satır bulacaksınız .

ve (değişebilir sisteminize) gibi görünecektir bir 64bit programı için örnek

: Bu olgu değildir ve yüklü libc 32bit var yaparsanız

[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] 

, bir ldd java, deneyebilirsiniz hangi orada hatları not found diyorsun o zaman koşuluyla pagkages eklemek gerekir eğer

linux-gate.so.1 => (0xf76ef000) 
libpthread.so.0 => /lib32/libpthread.so.0 (0xf76b3000) 
libjli.so => /home/bubba/java/jdk1.7.0_02/bin/./../jre/lib/i386/jli/libjli.so (0xf769f000) 
libdl.so.2 => /lib32/libdl.so.2 (0xf7699000) 
libc.so.6 => /lib32/libc.so.6 (0xf751f000) 
/lib/ld-linux.so.2 (0xf76f0000) 

, ancak bu ldd görebileceğiniz gibi tüm bağımlılıkları practi üzerinde bulunması gereken temel kütüphaneleri şunlardır: böyle bir liste verecek cally tüm linux sistemleri./Usr/bin/java:

+0

Teşekkür ederim. Olan şey buydu ... Gelişim ortamımı nasıl kurduğumu gösteren bir dizi dersler hazırlıyorum. Şimdi VirtualBox'ta Ubuntu'yu kullandığım versiyonun 64 bit AMD olduğunu ve Intel yongasında olduğumu fark ettim. Bundan önce senaryo çalıştı, ama dün yaptığım yeni misafirin yanlış Ubuntu imajından geldiğini fark ettim. – thejartender

+0

OP ile aynı sorunu yaşadım ve 'apt-get install libc6-i386' çalıştırılarak çözüldü. 64 bit Ubuntu üzerinde 32-bit JDK 7 ile ek sorunlar olabilir acaba? –

+1

@Petesh aynı soruna sahip, ancak bir cpu ile. Kol için libs olup olmadığını merak ediyorum .. – Eugene

0

Ben

Bash başlamıştı Böyle bir dosya veya dizin

sorunu ben x86_64 Debian üzerinde Java i586 sürümünün yüklü oldu.

Düzeltme: Ben kaldırıldı ve Java'nın x64 sürümünü yükleyin. Her şey yolunda çalışıyor.

İlgili konular