Ubuntu 18.04 Üzerine Apt ile Java Kurulumu: Kapsamlı Bir Rehber
Java, dünya genelinde en yaygın kullanılan programlama dillerinden ve platformlarından biridir. Masaüstü uygulamalarından mobil uygulamalara, büyük ölçekli kurumsal sistemlerden web sunucularına kadar geniş bir yelpazede kendine yer bulmuştur. Özellikle sunucu tarafı uygulamalar ve Android geliştirme için vazgeçilmez bir araçtır. Ubuntu 18.04 LTS (Long Term Support) ise, kararlılığı ve uzun süreli desteği sayesinde birçok sunucu ve geliştirme ortamında hala tercih edilen bir Linux dağıtımıdır. Bu makale, Ubuntu 18.04 işletim sistemi üzerine Java Development Kit (JDK) kurulumunu Apt paket yöneticisi aracılığıyla nasıl gerçekleştireceğinizi, farklı Java sürümlerini, kurulum adımlarını, doğrulama yöntemlerini ve sık karşılaşılan sorunları kapsayan kapsamlı bir rehber sunmaktadır.
Java Neden Önemli ve Ubuntu 18.04 Neden Tercih Edilmeli?
Java’nın popülaritesi, platform bağımsızlığı, güçlü ekosistemi, geniş kütüphane desteği ve yüksek performansı gibi özelliklerinden kaynaklanmaktadır. Bir kez yazılan Java kodu, “Write Once, Run Anywhere” (WORA) prensibi sayesinde, Java Sanal Makinesi (JVM) bulunan herhangi bir platformda çalışabilir. Bu da onu kurumsal uygulamalar, büyük veri işleme, bulut tabanlı hizmetler ve gömülü sistemler için ideal kılar.
Ubuntu 18.04 (Bionic Beaver), Nisan 2018’de piyasaya sürülen ve Nisan 2023’e kadar standart destek, Nisan 2028’e kadar ise Genişletilmiş Güvenlik Bakımı (ESM) sunan bir LTS sürümüdür. Kararlılığı, geniş yazılım deposu ve uzun süreli desteği nedeniyle, özellikle üretim ortamlarında veya belirli yazılım bağımlılıkları olan sistemlerde hala aktif olarak kullanılmaktadır. Bu nedenle, bu platform üzerinde Java’nın doğru ve güvenli bir şekilde nasıl kurulacağını bilmek, birçok geliştirici ve sistem yöneticisi için kritik öneme sahiptir. Apt (Advanced Package Tool) ise, Debian tabanlı sistemlerde yazılım kurulumu, güncellenmesi ve kaldırılması için kullanılan standart ve güçlü bir komut satırı aracıdır. Bu rehberde, Apt’nin sunduğu kolaylıklardan faydalanarak Java kurulumunu adım adım inceleyeceğiz.
Java Sürümleri ve Seçim Kriterleri
Java ekosistemi, farklı implementasyonlar ve sürüm politikaları ile oldukça geniştir. Kuruluma başlamadan önce, hangi Java sürümünü ve implementasyonunu seçeceğinize karar vermeniz önemlidir.
OpenJDK vs. Oracle JDK
Java’nın iki ana implementasyonu bulunmaktadır: OpenJDK ve Oracle JDK.
* OpenJDK (Open Java Development Kit): Açık kaynaklı ve ücretsiz bir Java implementasyonudur. Oracle ve diğer topluluk üyeleri tarafından geliştirilir. Genellikle Linux dağıtımlarının varsayılan depolarında bulunur ve çoğu kullanım senaryosu için yeterlidir. Lisanslama açısından GPLv2 (GNU General Public License, version 2) ile lisanslanmıştır, bu da onu ticari ve kişisel kullanım için tamamen ücretsiz ve özgür kılar. Performans ve özellikler açısından Oracle JDK ile büyük ölçüde aynıdır.
* Oracle JDK: Oracle tarafından geliştirilen ticari bir Java implementasyonudur. Eskiden ücretsiz olan Oracle JDK, Java 11 ve sonrası sürümlerden itibaren ticari kullanım için ücretli hale gelmiştir. Geliştirme ve test amaçlı kullanım genellikle ücretsizdir ancak üretim ortamında kullanmak için Oracle’dan lisans satın almak gerekebilir. Bazı özel kurumsal uygulamalar veya eski sistemler Oracle JDK’nın belirli özelliklerine veya performans optimizasyonlarına bağımlı olabilir.
Genel olarak, yeni projeler ve sunucu ortamları için OpenJDK tercih etmek hem lisanslama kolaylığı hem de topluluk desteği açısından daha avantajlıdır. Ubuntu depolarında bulunan Java sürümleri genellikle OpenJDK tabanlıdır.
LTS Sürümleri ve Önemi
Java, her altı ayda bir yeni bir özellik sürümü yayınlar. Ancak, her birkaç yılda bir “Long Term Support” (LTS) yani Uzun Süreli Destek sürümleri çıkarır. LTS sürümleri, uzun süreli kararlılık, güvenlik güncellemeleri ve hata düzeltmeleri sunar. Üretim ortamlarında genellikle LTS sürümleri tercih edilir.
Ubuntu 18.04’ün varsayılan depolarında genellikle aşağıdaki LTS OpenJDK sürümleri bulunur:
* OpenJDK 8 (Java 8): Nisan 2014’te yayınlanan bu sürüm, hala birçok eski uygulamanın bağımlılığıdır. Ubuntu 18.04 depolarında openjdk-8-jdk olarak bulunur.
* OpenJDK 11 (Java 11): Eylül 2018’de yayınlanan bu sürüm, Java 8’den sonraki ilk modern LTS sürümüdür ve birçok önemli yenilik getirmiştir. Ubuntu 18.04 depolarında openjdk-11-jdk olarak bulunur. Birçok yeni uygulama ve geliştirme için önerilen sürümdür.
Daha yeni LTS sürümleri olan Java 17 (Eylül 2021) veya Java 21 (Eylül 2023) gibi sürümler, Ubuntu 18.04’ün varsayılan depolarında bulunmaz. Bu sürümleri kurmak için harici PPA (Personal Package Archive) veya manuel kurulum yöntemlerine başvurmak gerekebilir. Ancak bu makale Apt ile kurulumu odaklandığı için, varsayılan depolardaki sürümlere öncelik vereceğiz ve PPA kullanımını da kısaca ele alacağız.
Hangi Java Sürümünü Seçmelisiniz?
Seçiminiz genellikle şu faktörlere bağlıdır:
* Uygulama Gereksinimleri: Geliştireceğiniz veya çalıştıracağınız uygulamanın belirli bir Java sürümüne bağımlılığı varsa, o sürümü seçmelisiniz.
* Uyumluluk: Kullandığınız kütüphaneler, çerçeveler (frameworks) veya diğer araçların belirli bir Java sürümüyle uyumlu olup olmadığını kontrol edin.
* Güncellik ve Güvenlik: Mümkünse en yeni desteklenen LTS sürümünü (örneğin OpenJDK 11) tercih etmek, güvenlik güncellemeleri ve modern özelliklerden faydalanmanızı sağlar.
* Kurumsal Politikalar: Bazı şirketlerin belirli Java sürümlerini kullanma veya belirli implementasyonları (Oracle JDK gibi) tercih etme politikaları olabilir.
Kuruluma Başlamadan Önce
Herhangi bir yazılım kurulumuna başlamadan önce, sisteminizin güncel olduğundan emin olmak iyi bir uygulamadır. Bu, bağımlılık sorunlarını önlemeye ve en yeni güvenlik yamalarına sahip olmanızı sağlamaya yardımcı olur.
Sistem Güncellemesi
Terminali açın (Ctrl+Alt+T) ve aşağıdaki komutları çalıştırın:
1. Paket Listesini Güncelleme: Bu komut, sisteminizin depolarındaki paket listelerini günceller.
sudo apt update
2. Yüklü Paketleri Yükseltme: Bu komut, yüklü paketlerinizi en yeni sürümlerine yükseltir.
sudo apt upgrade -y
-y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı vermenizi sağlar.
3. Çekirdek ve Sistem Yükseltmeleri (İsteğe Bağlı ama Önemli): Bazı durumlarda, sistemin çekirdeği veya temel sistem bileşenleri de güncellenmesi gerekebilir. Bu komut, bağımlılıkları da göz önünde bulundurarak tam bir sistem yükseltmesi yapar.
sudo apt dist-upgrade -y
4. Kullanılmayan Paketleri Kaldırma: Bu komut, artık ihtiyaç duyulmayan veya otomatik olarak yüklenmiş ancak başka bir pakete bağlı olmayan paketleri temizler.
sudo apt autoremove -y
Mevcut Java Kurulumlarını Kontrol Etme
Sisteminizde önceden kurulu bir Java sürümü olup olmadığını kontrol etmek, olası çakışmaları önlemek için önemlidir.
1. Java Sürümünü Kontrol Etme:
java -version
Eğer Java kuruluysa, sürüm bilgisi görüntülenecektir. Eğer kurulu değilse, “command not found” benzeri bir hata alırsınız.
2. Java Derleyici (Javac) Sürümünü Kontrol Etme:
javac -version
Bu komut, JDK’nın (Java Development Kit) kurulu olup olmadığını gösterir. Sadece JRE (Java Runtime Environment) kuruluysa javac bulunamaz.
3. Java’nın Nerede Bulunduğunu Kontrol Etme:
which java
Bu komut, sistemdeki java yürütülebilir dosyasının tam yolunu gösterir.
4. Alternatif Java Kurulumlarını Görüntüleme:
update-alternatives --display java
Bu komut, sisteminizde kurulu olan ve update-alternatives sistemi tarafından yönetilen tüm Java sürümlerini listeler. Birden fazla Java sürümü varsa, burada listelenirler.
5. Yüklü OpenJDK Paketlerini Görüntüleme:
dpkg -l | grep openjdk
Bu komut, tüm OpenJDK ile ilgili paketleri listeler. Eğer daha önce Oracle JDK kurduysanız, dpkg -l | grep jdk komutunu da kullanabilirsiniz.
Eğer mevcut bir Java kurulumunu kaldırmak isterseniz, sudo apt purge komutunu kullanabilirsiniz (örneğin, sudo apt purge openjdk-11-jdk). Ancak, genellikle yeni bir sürüm kurarken eski sürümü kaldırmak zorunlu değildir, update-alternatives ile yönetilebilirler.
OpenJDK Kurulumu
OpenJDK, Ubuntu’nun varsayılan depolarında bulunan ve çoğu geliştirme ve üretim ortamı için önerilen Java implementasyonudur. Kurulumu oldukça basittir.
Varsayılan Depolardan OpenJDK Kurulumu
Ubuntu 18.04’ün varsayılan depoları, OpenJDK 8 ve OpenJDK 11 sürümlerini sunar.
* JRE (Java Runtime Environment): Java uygulamalarını çalıştırmak için gereken temel bileşenleri içerir.
* JDK (Java Development Kit): JRE’ye ek olarak, Java uygulamaları geliştirmek için gereken derleyici (javac), hata ayıklayıcı (jdb) ve diğer araçları içerir. Geliştiriciler için JDK kurulması zorunludur.
OpenJDK 11 Kurulumu (Önerilen)
Java 11, modern bir LTS sürümü olduğu için çoğu yeni proje için idealdir. Kurulumu için aşağıdaki komutu kullanın:
sudo apt install openjdk-11-jdk -y
Bu komut, openjdk-11-jdk paketini ve onun bağımlılıklarını (JRE dahil) kuracaktır.
Ayrıca, default-jdk meta paketi de mevcuttur. Bu paket, Ubuntu’nun önerdiği varsayılan JDK sürümünü kurar. Ubuntu 18.04’te bu genellikle OpenJDK 11’i işaret eder:
sudo apt install default-jdk -y
Bu, genellikle openjdk-11-jdk paketini kuracaktır, ancak gelecekteki Ubuntu sürümlerinde farklı bir OpenJDK LTS sürümünü işaret edebilir. Belirli bir sürümü kurmak istiyorsanız, openjdk-11-jdk gibi doğrudan paket adını kullanmak daha iyidir.
OpenJDK 8 Kurulumu (Eski Uygulamalar İçin)
Eğer eski bir Java uygulamasıyla çalışmanız gerekiyorsa veya belirli bir sistem Java 8’e bağımlıysa, OpenJDK 8’i kurmanız gerekebilir:
sudo apt install openjdk-8-jdk -y
Benzer şekilde, default-jre veya default-jdk meta paketleri de Java 8’i işaret edebilir, ancak bu genellikle Ubuntu 18.04 için OpenJDK 11’e geçiş yapmıştır.
OpenJDK 17/21 Kurulumu (Harici PPA ile)
Ubuntu 18.04’ün varsayılan depolarında Java 17 veya Java 21 gibi daha yeni LTS sürümleri bulunmaz. Bu sürümleri kurmak için genellikle üçüncü taraf bir PPA (Personal Package Archive) kullanmanız gerekir. Önemli bir not: Üçüncü taraf PPA’lar, resmi Ubuntu depoları kadar güvenli veya güncel olmayabilir. Kullanmadan önce dikkatli araştırma yapmanız önerilir.
Bir örnek olarak, “openjdk-r” PPA’sı bazı daha yeni OpenJDK sürümlerini sunabilir. Ancak, 18.04 için bile en yeni sürümlerin desteği kısıtlı olabilir. Yine de, genel yaklaşım şöyledir:
1. PPA’yı Ekleyin:
sudo add-apt-repository ppa:openjdk-r/ppa -y
2. Paket Listesini Güncelleyin:
sudo apt update
3. İstediğiniz OpenJDK Sürümünü Kurun:
sudo apt install openjdk-17-jdk -y
# veya
sudo apt install openjdk-21-jdk -y
Eğer bu paketler PPA’da mevcutsa kurulacaktır. Mevcut değilse, “Unable to locate package” hatası alırsınız. Bu durumda, ya başka bir PPA aramanız ya da manuel kurulum yöntemine başvurmanız gerekir ki bu makalenin kapsamı dışındadır.
Oracle JDK Kurulumu
Oracle JDK’nın lisanslama modelindeki değişiklikler nedeniyle, doğrudan Apt depolarında kolayca bulunmaz. Kurulumu genellikle manuel indirme ve kurma veya üçüncü taraf bir PPA kullanma yoluyla yapılır. Apt ile kurulumu kolaylaştırmak için genellikle üçüncü taraf PPA’lar tercih edilir.
Oracle JDK Neden Daha Karmaşık?
Java 11’den itibaren Oracle JDK’nın ticari kullanımı için lisans gerektirmesi ve resmi olarak Apt depolarında bulunmaması, kurulumunu OpenJDK’ya göre daha karmaşık hale getirir. Üçüncü taraf PPA’lar, bu karmaşıklığı Apt paket yöneticisi aracılığıyla çözmeye çalışır.
Third-Party PPA ile Kurulum
Oracle JDK’yı Apt ile kurmanın en yaygın yollarından biri, “Linux Uprising” PPA’sı gibi üçüncü taraf bir PPA kullanmaktır. Bu PPA, Oracle JDK’yı indirip kuran bir oracle-javaX-installer paketi sağlar.
Adımlar:
1. PPA’yı Ekleyin:
sudo add-apt-repository ppa:linuxuprising/java -y
Bu PPA, Oracle Java 8, 11, 13, 14, 15, 16 ve 17 gibi sürümler için yükleyiciler sunar.
2. Paket Listesini Güncelleyin:
sudo apt update
3. Oracle JDK’yı Kurun:
Örneğin, Oracle Java 11’i kurmak için:
sudo apt install oracle-java11-installer -y
Veya Oracle Java 8 için:
sudo apt install oracle-java8-installer -y
Kurulum sırasında, Oracle’ın lisans anlaşmasını kabul etmeniz istenecektir. Bu, terminalde bir metin tabanlı arayüz olarak görünecektir. Yönlendirmeleri takip ederek anlaşmayı kabul edin.
Uyarılar:
* Üçüncü taraf PPA’lar, resmi Ubuntu depoları kadar güvenli veya güncel olmayabilir. PPA’nın güvenilirliğini ve bakım durumunu araştırmanız önemlidir.
* Oracle’ın lisans anlaşmasını dikkatlice okuyun ve ticari kullanım için gereken lisansları edindiğinizden emin olun.
* PPA’yı ekledikten sonra, sudo apt update komutunu çalıştırmazsanız, ilgili paketleri bulamazsınız.
Java Kurulumunu Doğrulama
Java kurulumu tamamlandıktan sonra, her şeyin doğru çalıştığından emin olmak için doğrulama adımlarını uygulamak önemlidir.
1. Java Sürümünü Kontrol Etme:
java -version
Bu komut, sisteminizde şu anda etkin olan Java Runtime Environment (JRE) sürümünü göstermelidir. Örneğin:
openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment (build 11.0.12+7-Ubuntu-0ubuntu218.04)
OpenJDK 64-Bit Server VM (build 11.0.12+7-Ubuntu-0ubuntu218.04, mixed mode, sharing)
2. Java Derleyici (Javac) Sürümünü Kontrol Etme:
javac -version
Bu komut, Java Development Kit (JDK) derleyicisinin sürümünü göstermelidir. Örneğin:
javac 11.0.12
Eğer javac komutu bulunamazsa, muhtemelen sadece JRE kurdunuz. JDK kurduğunuzdan emin olun (örneğin openjdk-11-jdk).
3. JAVA_HOME Ortam Değişkenini Kontrol Etme (Eğer Ayarlıysa):
echo $JAVA_HOME
Bu komut, JAVA_HOME ortam değişkeninin değerini gösterir. Eğer boşsa, ayarlanmamıştır. Bu değişken, bazı Java tabanlı uygulamalar ve geliştirme araçları için gereklidir. Nasıl ayarlanacağını ileride açıklayacağız.
4. Aktif Java Yürütülebilir Dosyasının Yolunu Kontrol Etme:
which java
Bu komut, sistem PATH’inizdeki java komutunun hangi dosyaya işaret ettiğini gösterir. Genellikle /usr/bin/java çıktısını verir, ki bu da update-alternatives tarafından yönetilen sembolik bir bağdır.
5. Tüm Java Alternatiflerini Görüntüleme:
update-alternatives --display java
Bu komut, sistemde kurulu olan ve update-alternatives sistemi tarafından yönetilen tüm Java sürümlerini ve varsayılan olarak hangisinin seçili olduğunu detaylı bir şekilde gösterir.
Birden Fazla Java Sürümünü Yönetme
Geliştirme ortamlarında veya farklı uygulamaların farklı Java sürümlerine ihtiyaç duyduğu durumlarda, sisteminizde birden fazla Java sürümü kurulu olabilir. Ubuntu, bu tür senaryoları yönetmek için update-alternatives komutunu sağlar.
update-alternatives Komutu
update-alternatives komutu, sisteminizdeki aynı işlevi gören farklı programlar arasında geçiş yapmanızı sağlar. Java için, java, javac, jar, javadoc gibi komutlar bu sistem tarafından yönetilir.
1. Varsayılan Java Sürümünü Ayarlama:
Sisteminizde kurulu olan Java sürümlerini listelemek ve varsayılan olarak hangisini kullanacağınızı seçmek için aşağıdaki komutu kullanın:
sudo update-alternatives --config java
Bu komutu çalıştırdığınızda, kurulu olan Java alternatiflerinin bir listesini göreceksiniz. Her alternatifin yanında bir numara bulunur. İstediğiniz Java sürümünün numarasını girip Enter tuşuna basarak varsayılanı değiştirebilirsiniz. Örneğin:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 auto mode
1 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
2 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 manual mode
Press to keep the current choice[*], or type selection number:
Burada, 0 otomatik modda seçili olanı, 1 ve 2 ise manuel olarak seçilebilecek alternatifleri gösterir. İstediğiniz sürümün numarasını girerek seçiminizi yapabilirsiniz.
2. Varsayılan Javac Sürümünü Ayarlama:
Benzer şekilde, javac (Java derleyici) için de varsayılan sürümü ayarlayabilirsiniz:
sudo update-alternatives --config javac
Bu komutu da java için yaptığınız gibi istediğiniz javac sürümünü seçmek için kullanın.
3. Diğer Java Araçlarını Yönetme:
jar, javadoc, javap gibi diğer Java araçları için de aynı komutu kullanabilirsiniz:
sudo update-alternatives --config jar
sudo update-alternatives --config javadoc
update-alternatives sistemi, /usr/bin/java gibi ortak yolların aslında /etc/alternatives/java gibi sembolik bağlantılar olduğunu ve bu bağlantıların da seçtiğiniz gerçek Java yürütülebilir dosyasına işaret ettiğini unutmayın.
JAVA_HOME Ortam Değişkeni
JAVA_HOME ortam değişkeni, Java’nın kurulu olduğu ana dizini gösteren bir sistem değişkenidir. Birçok Java tabanlı uygulama, araç (Maven, Gradle, Tomcat, Jenkins vb.) ve geliştirme ortamı (IDE’ler) bu değişkeni kullanarak Java kurulumunu bulur. update-alternatives komutu sistemi genelinde java komutunun hangi sürümü kullanacağını belirlese de, JAVA_HOME doğrudan belirli bir dizini işaret eder ve bazı uygulamalar için zorunludur.
JAVA_HOME değişkenini ayarlamak için birkaç yöntem vardır:
1. Sistem Geneli İçin (/etc/environment):
Bu dosya, tüm kullanıcılar ve sistem genelinde ortam değişkenlerini ayarlamak için kullanılır.
Dosyayı açın:
sudo nano /etc/environment
Dosyanın sonuna aşağıdaki satırı ekleyin (örneğin OpenJDK 11 için):
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
Veya OpenJDK 8 için:
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre"
Not: OpenJDK kurulumlarında, JDK’nın ana dizini genellikle /usr/lib/jvm/java-X-openjdk-amd64 şeklindedir. Doğru yolu bulmak için readlink -f /usr/bin/java komutunu çalıştırabilirsiniz, bu size /usr/lib/jvm/java-11-openjdk-amd64/bin/java gibi bir çıktı verecektir. JAVA_HOME için /bin/java kısmını çıkarmanız gerekir.
Değişiklikleri kaydettikten sonra (Ctrl+O, Enter, Ctrl+X), sistemi yeniden başlatmanız veya ortam değişkenlerini yeniden yüklemeniz gerekir:
source /etc/environment
Ancak, /etc/environment değişiklikleri genellikle oturum açıldığında uygulanır, bu yüzden yeniden oturum açmak veya sistemi yeniden başlatmak daha güvenli bir yoldur.
2. Kullanıcı Bazında (~/.bashrc veya ~/.profile):
Eğer JAVA_HOME‘ı sadece belirli bir kullanıcı için ayarlamak istiyorsanız, kullanıcının ana dizinindeki .bashrc (her yeni terminal oturumu için) veya .profile (oturum açıldığında) dosyasına ekleyebilirsiniz.
nano ~/.bashrc
Dosyanın sonuna aşağıdaki satırları ekleyin:
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
export PATH=$PATH:$JAVA_HOME/bin
Değişiklikleri kaydettikten sonra, yeni ayarları uygulamak için:
source ~/.bashrc
export PATH=$PATH:$JAVA_HOME/bin satırı, JAVA_HOME dizinindeki bin klasörünü PATH’e ekler, böylece java ve javac komutlarını doğrudan kullanabilirsiniz. Ancak update-alternatives zaten bunu yaptığı için bu satır genellikle isteğe bağlıdır.
update-alternatives ile JAVA_HOME Senkronizasyonu:
Bazı kullanıcılar, JAVA_HOME değişkenini update-alternatives tarafından seçilen Java sürümüne dinamik olarak bağlamak isteyebilir. Bunu yapmak için, JAVA_HOME‘ı doğrudan bir yola sabitlemek yerine, update-alternatives‘ın sembolik bağlantısını kullanabilirsiniz:
export JAVA_HOME=$(update-alternatives --query java | grep Value | cut -d ' ' -f 2 | sed 's/\/bin\/java//')
Bu komut, java komutunun update-alternatives tarafından işaret edildiği gerçek yolu alır ve /bin/java kısmını kaldırarak JAVA_HOME değişkenine atar. Bu satırı .bashrc dosyanıza ekleyerek, JAVA_HOME‘ınızın her zaman update-alternatives ile seçilen Java sürümünü göstermesini sağlayabilirsiniz. Ancak bu daha karmaşık bir yaklaşımdır ve çoğu durumda statik bir yol belirlemek yeterlidir.
Java Uygulamalarını Çalıştırma
Java kurulumunuzu doğruladıktan sonra, basit bir “Hello World” uygulaması yazarak her şeyin doğru çalıştığından emin olabilirsiniz.
1. Java Kaynak Dosyası Oluşturma:
Bir metin düzenleyici açın ve HelloWorld.java adında bir dosya oluşturun:
nano HelloWorld.java
İçine aşağıdaki kodu yapıştırın:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, Java on Ubuntu 18.04!");
}
}
Kaydedin ve kapatın.
2. Java Kodunu Derleme:
Terminalde, HelloWorld.java dosyasının bulunduğu dizine gidin ve kodu derleyin:
javac HelloWorld.java
Eğer herhangi bir hata almazsanız, bu komut HelloWorld.class adında bir bytecode dosyası oluşturacaktır.
3. Java Uygulamasını Çalıştırma:
Derlenen bytecode’u çalıştırmak için:
java HelloWorld
Ekranda “Hello, Java on Ubuntu 18.04!” çıktısını görmelisiniz. Bu, Java kurulumunuzun tamamen işlevsel olduğunu gösterir.
Sık Karşılaşılan Sorunlar ve Çözümleri
Java kurulumu sırasında veya sonrasında bazı sorunlarla karşılaşmak mümkündür. İşte en yaygın sorunlar ve çözümleri:
“java: command not found” veya “javac: command not found”
Bu hata, sisteminizin PATH ortam değişkeninde Java yürütülebilir dosyalarının bulunmadığı anlamına gelir.
* Çözüm:
* Java’nın doğru bir şekilde kurulduğundan emin olun (java -version, javac -version komutlarını tekrar deneyin).
* sudo update-alternatives --config java ve sudo update-alternatives --config javac komutlarını kullanarak varsayılan Java sürümünün ayarlandığından emin olun.
* which java komutuyla java yürütülebilir dosyasının yolunu kontrol edin. Eğer /usr/bin/java gibi bir çıktı vermiyorsa, kurulumda bir sorun olabilir.
* JAVA_HOME ortam değişkenini doğru ayarladıysanız, export PATH=$PATH:$JAVA_HOME/bin satırının .bashrc veya /etc/environment dosyanızda olduğundan ve değişikliğin source komutuyla veya yeniden oturum açarak uygulandığından emin olun.
Oracle JDK Kurulumunda Lisans Anlaşması Sorunları
Üçüncü taraf PPA’lar aracılığıyla Oracle JDK kurarken, lisans anlaşması penceresi bazen düzgün görüntülenmeyebilir veya takılabilir.
* Çözüm:
Kurulumu tamamlamak için lisans anlaşmasını kabul etmeniz gerekir. Eğer bu ekranı kaçırırsanız veya takılırsa, aşağıdaki komutu kullanarak paketi yeniden yapılandırabilirsiniz:
sudo dpkg-reconfigure oracle-javaX-installer
Burada X kurmaya çalıştığınız Java sürümüdür (örneğin oracle-java11-installer). Bu komut, lisans anlaşması ekranını tekrar getirecektir.
apt update Hataları
PPA ekledikten sonra sudo apt update komutu hata veriyorsa (örneğin, “GPG error”, “The repository does not have a Release file”), bu PPA’nın güvenli anahtarının eksik olduğu veya PPA’nın artık aktif olmadığı anlamına gelebilir.
* Çözüm:
* sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys komutuyla eksik GPG anahtarını eklemeyi deneyin. Hata mesajında genellikle KEY_ID belirtilir.
* Eğer PPA artık güncel değilse veya Ubuntu 18.04 için desteklenmiyorsa, /etc/apt/sources.list.d/ dizinindeki ilgili PPA dosyasını kaldırmanız gerekebilir. Örneğin, sudo rm /etc/apt/sources.list.d/linuxuprising-java-bionic.list.
* Ağ bağlantınızı kontrol edin.
Doğru Java Sürümünün Kullanılmaması
Sistemde birden fazla Java sürümü varken, bir uygulamanın yanlış sürümü kullanması yaygın bir sorundur.
* Çözüm:
* sudo update-alternatives --config java ve sudo update-alternatives --config javac komutlarıyla sistem genelindeki varsayılan Java sürümünü ayarladığınızdan emin olun.
* JAVA_HOME ortam değişkeninin doğru Java sürümünü işaret ettiğini kontrol edin. Özellikle Maven, Gradle veya Tomcat gibi araçlar için bu çok önemlidir. Bu araçlar genellikle JAVA_HOME‘ı doğrudan okur ve update-alternatives tarafından belirlenen sistem PATH’ini göz ardı edebilir.
* Bazı IDE’ler (Eclipse, IntelliJ IDEA) veya özel uygulamalar, kendi Java yollarını ayarlama seçeneği sunar. Uygulamanın kendi ayarlarını kontrol edin ve doğru JDK yolunu belirtin.
* Kullanıcının .bashrc veya .profile dosyasında yanlış bir JAVA_HOME veya PATH ayarı olup olmadığını kontrol edin.
Güvenlik ve Güncelleme
Eski Java sürümlerini kullanmak veya sistem güncellemelerini ihmal etmek güvenlik riskleri oluşturabilir.
* Çözüm:
* Mümkünse her zaman en yeni LTS OpenJDK sürümünü kullanın (Ubuntu 18.04 için OpenJDK 11).
* Sisteminizi düzenli olarak sudo apt update && sudo apt upgrade -y komutlarıyla güncelleyin. Bu, Java dahil tüm kurulu paketler için güvenlik yamalarını ve hata düzeltmelerini almanızı sağlar.
* Kullanmadığınız eski Java sürümlerini kaldırmayı düşünün (sudo apt purge openjdk-X-jdk).
Sonuç
Ubuntu 18.04 üzerine Java kurulumu, Apt paket yöneticisi sayesinde oldukça kolay ve yönetilebilirdir. OpenJDK, lisanslama kolaylığı ve topluluk desteği nedeniyle çoğu kullanıcı için önerilen seçenektir ve Ubuntu’nun varsayılan depolarında kolayca bulunur. Özellikle OpenJDK 11, modern uygulamalar için güçlü ve güncel bir LTS sürümüdür. Eğer belirli bir Oracle JDK bağımlılığınız varsa, üçüncü taraf PPA’lar aracılığıyla kurulum yapmak mümkündür, ancak lisanslama ve güvenlik hususları göz önünde bulundurulmalıdır.
Bu rehberde sunulan adımları takip ederek, Ubuntu 18.04 sisteminizde Java’yı başarıyla kurabilir, farklı sürümleri yönetebilir ve Java uygulamalarınızı sorunsuz bir şekilde geliştirmeye veya çalıştırmaya başlayabilirsiniz. Sistem güncellemelerini düzenli olarak yapmak, update-alternatives ile sürümleri doğru yönetmek ve JAVA_HOME ortam değişkenini gerektiğinde ayarlamak, sorunsuz bir Java geliştirme deneyimi için kritik öneme sahiptir. Java ekosisteminin sürekli geliştiğini ve Ubuntu 18.04’ün yaşam döngüsünün sona yaklaştığını unutmayın. Gelecekteki projeleriniz için daha yeni Ubuntu LTS sürümlerini (örneğin 20.04 veya 22.04) değerlendirmek, daha yeni Java LTS sürümlerine (17, 21) daha kolay erişim sağlamanıza olanak tanıyacaktır.