İçeriğe geç
KAMPANYA Kurumsal Web Paketi — $499'dan başlayan fiyatlar Web & Logo Tasarımı · Kurumsal E-posta · LiteSpeed + CloudLinux · Imunify360 Güvenlik · cPanel Yönetim · 3 Gbps DDoS Koruması 00 Gün 00 Saat 00 Dk 00 Sn
AIOR

How to List All Installed Java Versions on an AlmaLinux Server — Practical

Sektör topluluğu — sorularınız, deneyimleriniz ve duyurularınız için.

How to List All Installed Java Versions on an AlmaLinux Server — Practical

Aior

Administrator
Staff member
Joined
Apr 2, 2023
Messages
895
Reaction score
2
Points
18
Age
40
Location
Turkey
Website
aior.com
1/3
Thread owner

Neden Java Sürümlerini Kontrol Etmek Gerekir?​

Java tabanlı uygulamalar — özellikle ElasticSearch, Solr, Apache Kafka gibi sunucu yazılımları — belirli Java sürümlerine bağımlıdır. AlmaLinux sunucusunda zaman içinde birden fazla Java Development Kit (JDK) sürümü kurulu hale gelebilir; bunlar arasında çatışma yaşandığında uygulamalar başlatılamaz veya rastgele hatalar verir. Kurulu tüm Java sürümlerini görmek, hangi sürümün varsayılan olduğunu anlamak ve gereksizleri kaldırmak temizleme öncesi şarttır.

Bu kısa rehber AlmaLinux 8/9 üzerinde Java envanteri çıkarmanın en güvenilir komutlarını gösterir; AIOR olarak ElasticSearch + XenForo deploy'larımızda bunu rutin olarak kullanıyoruz.

Aktif Java Sürümünü Görme​

En basit kontrol:

Code:
java -version

Çıktı örneği: openjdk version "17.0.9" 2023-10-17 LTS. Bu yalnızca PATH üzerinde çağrılan aktif Java'yı gösterir; birden fazla sürüm kurulu olabilir.

Alternatives Sistemi ile Tüm Sürümleri Listeleme​

AlmaLinux/RHEL ailesinde Java sürümleri alternatives sistemi ile yönetilir:

Code:
alternatives --list | grep -i java

veya tam liste:

Code:
alternatives --display java

İkinci komut tüm kurulu Java binary'lerinin tam path'lerini gösterir; "current ‘best' version is" satırı varsayılan sürümü işaret eder. Priority numarası daha yüksek olan öncelikli olur.

rpm ile Paket Sorgulama​

JDK paketleri DNF ile kurulduysa rpm sorgusu çok etkilidir:

Code:
rpm -qa | grep -i jdk
rpm -qa | grep -i java

Bu komut java-1.8.0-openjdk-headless, java-11-openjdk, java-17-openjdk gibi kurulu paketleri listeler. headless sürümü grafik bileşen içermez ve sunucu kullanımında tercih edilir.

find ile Dosya Sistemi Taraması​

Bazen Java manual olarak /opt altına çıkarılmış olabilir; alternatives ve rpm onu görmez:

Code:
find / -name "java" -type f 2>/dev/null
find / -name "javac" -type f 2>/dev/null

Tipik konumlar: /usr/lib/jvm/java-17-openjdk/bin/java, /opt/jdk-21/bin/java.

JAVA_HOME ve PATH Kontrolü​

Uygulamaların hangi Java'yı kullanacağı çoğu zaman JAVA_HOME çevre değişkenine bağlıdır:

Code:
echo $JAVA_HOME
which java
type -a java

type -a java tüm PATH dizinlerinde "java" adında çalıştırılabilir dosya arar; birden fazla varsa hangisi daha önce gelir görürsünüz.

Varsayılan Sürümü Değiştirme​

Hangi sürümün varsayılan olacağını alternatives ile interaktif seçebilirsiniz:

Code:
alternatives --config java

Liste açılır, istediğiniz sürüm numarasını girip Enter'a basın. ElasticSearch 8.x için OpenJDK 17 gerekir; ElasticSearch 7.x için OpenJDK 11 veya 17 desteklenir.

Gereksiz Sürümü Kaldırma​

Kullanılmayan sürümü kaldırmak için:

Code:
sudo dnf remove java-1.8.0-openjdk

Bu komuttan önce hangi servislerin o sürüme bağımlı olduğunu kontrol edin; systemctl list-units --type=service ve servis dosyalarındaki Environment=JAVA_HOME satırlarına bakın.

Üretim Önerileri​

Üretim sunucularında her zaman LTS (Long-Term Support) sürümleri kullanın: 8, 11, 17, 21. Geliştirici sürümleri (19, 20, 22) hızlı güncelleme döngüsünde güvenlik patch'leri için 6 ayda bir yenilenir. AIOR olarak ElasticSearch + XenForo barındırma müşterilerimize OpenJDK 17 LTS kuruyor ve aylık güvenlik patch'lerini biz yönetiyoruz.


Why Audit Java Versions?​

Java-based server software — ElasticSearch, Solr, Apache Kafka and many others — depends on specific JDK versions. Over time an AlmaLinux server can accumulate several Java installs; when they conflict, services refuse to start or fail intermittently. Listing every installed JDK, identifying the default and cleaning up unused versions is essential maintenance.

This short guide shows the most reliable commands for taking a Java inventory on AlmaLinux 8/9. AIOR uses these routinely when deploying ElasticSearch + XenForo stacks.

Checking the Active Version​

The simplest check:

Code:
java -version

Sample output: openjdk version "17.0.9" 2023-10-17 LTS. This shows only the Java reachable via PATH — multiple versions may be installed but invisible here.

Listing All Versions via Alternatives​

The RHEL family (including AlmaLinux) manages Java versions through alternatives:

Code:
alternatives --list | grep -i java

For a fuller view:

Code:
alternatives --display java

The second command lists every installed Java binary with its full path; the "current 'best' version is" line shows the default. Higher priority numbers win.

Querying RPM Packages​

If JDKs were installed via DNF, rpm queries are very effective:

Code:
rpm -qa | grep -i jdk
rpm -qa | grep -i java

This lists installed packages like java-1.8.0-openjdk-headless, java-11-openjdk, java-17-openjdk. The headless variant ships without GUI components — preferred on servers.

Scanning the Filesystem​

Sometimes Java is manually extracted under /opt and won't show in alternatives or rpm:

Code:
find / -name "java" -type f 2>/dev/null
find / -name "javac" -type f 2>/dev/null

Typical locations: /usr/lib/jvm/java-17-openjdk/bin/java, /opt/jdk-21/bin/java.

Inspecting JAVA_HOME and PATH​

Most apps decide which Java to use based on JAVA_HOME:

Code:
echo $JAVA_HOME
which java
type -a java

type -a java searches every PATH directory for an executable named "java" and shows the order — useful when shadowing is suspected.

Changing the Default​

Switch the system default interactively:

Code:
alternatives --config java

A list appears; type the number for your chosen version. ElasticSearch 8.x needs OpenJDK 17; ElasticSearch 7.x supports 11 or 17.

Removing an Unused Version​

To remove a version you no longer need:

Code:
sudo dnf remove java-1.8.0-openjdk

Before removing, check which services depend on that version — inspect systemctl list-units --type=service and look for Environment=JAVA_HOME in unit files.

Production Recommendations​

Stick to LTS (Long-Term Support) versions in production: 8, 11, 17, 21. Non-LTS releases (19, 20, 22) follow a faster cadence with security patches every six months. At AIOR we install OpenJDK 17 LTS for ElasticSearch + XenForo customers and manage monthly security patches on their behalf.
 

Forum statistics

Threads
891
Messages
898
Members
27
Latest member
AIORAli

Members online

No members online now.

Featured content

AIOR
AIOR TEKNOLOJİ

Tüm ihtiyaçlarınız için Teklif alın

Hosting · Domain · Sunucu · Tasarım · Yazılım · Mühendislik · Sektörel Çözümler

Teklif al

7/24 Destek · Anında yanıt

Back
Top