Ubuntu'da $ JAVA_HOME'u kolayca değiştirilebilir yapın [kapalı]


139

Ubuntu'da, Java 5 ve 6 arasında JAVA_HOME ortam değişkenimi ileri geri değiştirmek istiyorum.

Bir terminal açın ve JAVA_HOME ortam değişkenini ayarlamak için aşağıdakileri yazın:

export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun

Aynı terminal penceresinde, ortam değişkeninin güncellendiğini kontrol etmek için aşağıdakileri yazarım:

echo $JAVA_HOME

Ve /usr/lib/jvm/java-1.5.0-sun görmeyi beklediğim şey bu. Ayrıca, ~ / .profile dosyasını değiştiriyorum ve JAVA_HOME ortam değişkenini /usr/lib/jvm/java-1.5.0-sun olarak ayarladım.

Ve şimdi sorun için - yeni bir terminal penceresi açtığımda ve echo $ JAVA_HOME yazarak JAVA_HOME ortam değişkenimi kontrol ettiğimde JAVA_HOME ortam değişkenimin Java 6'ya geri döndürüldüğünü görüyorum. Makinemi (veya günlüğü yeniden başlattığımda JAVA_HOME ortam değişkeni Java 5 olarak ayarlanmış (muhtemelen benim ~ / .profile yaptığım değişiklik nedeniyle).

Çıkış ve tekrar giriş yapmadan JAVA_HOME ortamımı değiştirebilmem için bir yol var mı (VE tüm yeni terminal pencerelerinde bu ortam değişkeni değişiklik çubuğunu yap )?


29
Doğru site ve yinelenen cevap nedir?
Martin Konicek

~/.profileEğer Ubuntu için giriş yaparken dosya sadece size çıkış / giriş sonra java_home tüm terminaller ve çalıştırmak başka uygulamalar için ayarlanmış eğer öyleyse, okunur. JAVA_HOME ayarını yaparsanız ~/.bashrc, yalnızca terminalden çalıştırılan uygulamalar tarafından görülecektir.
jr0cket

Yanıtlar:


196

Ortam değişkenlerini genel /etc/environmentdosyaya yerleştirin:

...
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
...

Değişkenlerin güncellenmesini istediğiniz her kabukta "source / etc / environment" komutunu çalıştırın:

$ source /etc/environment

Çalışıp çalışmadığını kontrol edin:

$ echo $JAVA_HOME
$ /usr/lib/jvm/java-1.5.0-sun

Harika, çıkışa gerek yok.

JAVA_HOME ortam değişkenini yalnızca terminalde ayarlamak istiyorsanız, ~ / .bashrc dosyasında ayarlayın.


9
Bu değişikliklerin Ubuntu kullanıcı arayüzü üzerinden başlatılan uygulamaları etkilemesi için yine yeniden başlatma gerekiyor (örneğin, bir uygulamayı çift tıklamak)
Eric Hu

7
Bu, her friggin kabuğundaki değişkenin ayarlanmasından nasıl farklıdır?
mlissner

1
Bunu her seferinde manuel olarak çalıştırmak zorunda kalmamak için başka bir yol .bashrc dosyanızı "source / etc / environment" komutunu içerecek şekilde değiştirmektir
nityan

1
@MartinKonicek örneğiniz yanlış. bu satırda 'dışa aktarma' olmamalıdır. / etc / environment anahtar / değer çiftlerini içerir
pdeva

1
akılda tutmak /etc/environmentözeldir örn ve değişken ikame izin vermez JRE_HOME=${JAVA_HOME}/jreeser olmaz.
Abdull

31

Bu muhtemelen sorununuzu çözecektir: https://help.ubuntu.com/community/EnvironmentVariables

Oturum genelindeki ortam değişkenleri

Ortam değişkenlerini belirli bir kullanıcının ortamını etkileyecek şekilde ayarlamak için, kullanıcının giriş dizinindeki belirli kabuk komut dosyalarındaki değerlerini ayarlamak için komutlar yerleştirilmemelidir, ancak aşağıdakileri kullanın:

~ / .pam_environment - Bu dosya özellikle kullanıcının ortamını ayarlamak içindir. Bir komut dosyası değildir, her satırda bir tane olmak üzere atama ifadelerinden oluşur.

Tavsiye edilmez:

~ / .profile - Bu, muhtemelen ortam değişkeni atamalarını yerleştirmek için en iyi dosyadır, çünkü başlangıç ​​işlemi masaüstü oturumu sırasında DisplayManager tarafından ve metin konsolundan bir oturum açıldığında oturum açma kabuğu tarafından otomatik olarak yürütülür.


Sağladığınız bağlantıdan: "Aşağıdakiler önerilmez, ancak bu sayfada sağlanan önceki çözüm (?) 10.04 masaüstü sürümü ile çalışmadı. .Pam_environment dağıtımla doğal olarak işlem görmez."
Calmarius

14
~ / .pam_environment, değişkenleri işlediğini varsayarsanız girişinizi engellemenin harika bir yoludur. PATH $ {PATH}: $ {HOME} / bin için ayarlamayı denedim ve değişkenleri değerlendiremedi. Net sonuç: oturum açılamıyor :( Ctrl-Alt-1'i ziyaret edip "/ bin / rm ~ / .pam_environment" komutunu çalıştırarak düzeltildi. Ayarları burada test etmek için son derece dikkatli olun veya ikincil bir hesap kullanın.
Alain O'Dea

6
Şahsen neden çevre dosyasını oluşturmayı rahatsız ettiklerini bilmiyorum ve daha sonra daha önce çalışmış olan ortam değişkenlerini ayarlamak için diğer mekanizmalardan tamamen farklı bir şekilde çalışmasını sağladım. Ortam dosyasının kullandığı gibi basit anahtar / değer çiftleri düz BS'dir. Değişkenleri ve bağlantıları çevrede kullanmamızın bir nedeni var ve bugün hala hak ediyor. Yönetimi kolaylaştırır. Bu dosyada bir şeyler yapmanın PAM yolunun en iyi olduğuna karar veren kişi bozos kim olursa olsun en iyi ihtimalle embesillerdir. Değişkenlerin yorumlanması GEREKİR.
Bill Rosmus

1
@ AlainO'Dea: Ben de tamamen aynı sorunu yaşadım. Giriş ekranını geçemediğimde şok oldum ve endişelendim. Bazı kazma sonra değişkenleri kullanabilirsiniz ama farklı bir sözdizimi kullanmak zorunda bulundu. Örneğin. PATH DEFAULT = $ {PATH}: $ {HOME} / bin Bir değişken kullanmadığında, basit bir atamanın işe yaradığı görülmektedir.
tim_wonil

Evet, @ AlainO'Dea'ya katılıyorum. Komut dosyanızda herhangi bir hata varsa, giriş yapamazsınız. Kendine iyi bak.
Evan Hu

13

Bu adımları deneyin.

- "etc \ profile" i düzenleyeceğiz. Ortam değişkenleri dosyanın altına girilmelidir. Ubuntu kök klasöre erişim vermediğinden, terminalde birkaç komut kullanmamız gerekecek

Adım 1: Terminal'i başlatın. Komutu yazın:gksudo gedit /etc/profile

Adım 2: Profil metin dosyası açılacaktır. Sayfanın altına ortam değişkenlerini girin ........... Örn: export JAVA_HOME=/home/alex/jdk1.6.0_22/bin/java

export PATH=/home/alex/jdk1.6.0_22/bin:$PATH

step3: dosyayı kaydedin ve kapatın. Echo komutunu kullanarak ortam değişkenlerinin ayarlanıp ayarlanmadığını kontrol edin ........ Ör. echo $PATH


9

Değişken tanımını ~/.bashrcdosyaya koymanız gerekir .

Bash man sayfasından:

Giriş kabuğu olmayan bir etkileşimli kabuk başlatıldığında, bash bu dosyalar varsa /etc/bash.bashrc ve ~ / .bashrc'deki komutları okur ve yürütür.


5

Geleneksel olarak, yalnızca terminal pencerelerinizdeki değişkeni değiştirmek istiyorsanız, .bashrcdosyayı yeni bir terminal her açıldığında kaynaklanacak şekilde ayarlayın. .profileYeni bir terminal açtığınızda dosya kaynaklanmıyor.

Söz konusu .profile ve .bashrc arasındaki farka bakın: .bashrc, .bash_profile ve .environment arasındaki fark nedir?

.bashrcsorununuzu çözmelisiniz. Ancak, Ubuntu kullandığınız için bu doğru bir çözüm değildir. İlgili " Oturum genelinde ortam değişkenleri " konusundaki ilgili Ubuntu yardım sayfasına bakın . Bu nedenle, bunun .profilesizin için çalışmadığını merak etmeyin. Ubuntu 12.04 ve xfce kullanıyorum. Ben ayarladım .profileve oturumumu kapatıp açsam bile etkili olmuyor. Burada da benzer bir deneyim . Eğer kullanım gerekebilir Yani .pam_environmentdosyası ve tamamen unutmak .profileve .bashrc. Ve bu .pam_environmentbir komut dosyası değil NOT .




1

.Profile dosyasında değişiklik yaptıktan sonra, değişikliklerin geçerli olması için dosyayı yürütmeniz gerekir.

root@masternode# . ~/.profile

Bu yapıldığında, echo komutu çalışacaktır.


Bunun ~/.profileyerine kullanmalısınız ./.profile.
Alexis Wilke
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.