{"id":36989,"date":"2025-12-25T21:40:55","date_gmt":"2025-12-25T18:40:55","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=36989"},"modified":"2025-12-25T21:40:55","modified_gmt":"2025-12-25T18:40:55","slug":"ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/","title":{"rendered":"Ubuntu 18.04 \u00dczerine Apt ile Java Kurulumu: Kapsaml\u0131 Bir Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 18.04 \u00dczerine Apt ile Java Kurulumu: Kapsaml\u0131 Bir Rehber<\/h2>\n<p>Java, d\u00fcnya genelinde en yayg\u0131n kullan\u0131lan programlama dillerinden ve platformlar\u0131ndan biridir. Masa\u00fcst\u00fc uygulamalar\u0131ndan mobil uygulamalara, b\u00fcy\u00fck \u00f6l\u00e7ekli kurumsal sistemlerden web sunucular\u0131na kadar geni\u015f bir yelpazede kendine yer bulmu\u015ftur. \u00d6zellikle sunucu taraf\u0131 uygulamalar ve Android geli\u015ftirme i\u00e7in vazge\u00e7ilmez bir ara\u00e7t\u0131r. Ubuntu 18.04 LTS (Long Term Support) ise, kararl\u0131l\u0131\u011f\u0131 ve uzun s\u00fcreli deste\u011fi sayesinde bir\u00e7ok sunucu ve geli\u015ftirme ortam\u0131nda hala tercih edilen bir Linux da\u011f\u0131t\u0131m\u0131d\u0131r. Bu makale, Ubuntu 18.04 i\u015fletim sistemi \u00fczerine Java Development Kit (JDK) kurulumunu Apt paket y\u00f6neticisi arac\u0131l\u0131\u011f\u0131yla nas\u0131l ger\u00e7ekle\u015ftirece\u011finizi, farkl\u0131 Java s\u00fcr\u00fcmlerini, kurulum ad\u0131mlar\u0131n\u0131, do\u011frulama y\u00f6ntemlerini ve s\u0131k kar\u015f\u0131la\u015f\u0131lan sorunlar\u0131 kapsayan kapsaml\u0131 bir rehber sunmaktad\u0131r.<\/p>\n<h3>Java Neden \u00d6nemli ve Ubuntu 18.04 Neden Tercih Edilmeli?<\/h3>\n<p>Java&#8217;n\u0131n pop\u00fclaritesi, platform ba\u011f\u0131ms\u0131zl\u0131\u011f\u0131, g\u00fc\u00e7l\u00fc ekosistemi, geni\u015f k\u00fct\u00fcphane deste\u011fi ve y\u00fcksek performans\u0131 gibi \u00f6zelliklerinden kaynaklanmaktad\u0131r. Bir kez yaz\u0131lan Java kodu, &#8220;Write Once, Run Anywhere&#8221; (WORA) prensibi sayesinde, Java Sanal Makinesi (JVM) bulunan herhangi bir platformda \u00e7al\u0131\u015fabilir. Bu da onu kurumsal uygulamalar, b\u00fcy\u00fck veri i\u015fleme, bulut tabanl\u0131 hizmetler ve g\u00f6m\u00fcl\u00fc sistemler i\u00e7in ideal k\u0131lar.<\/p>\n<p>Ubuntu 18.04 (Bionic Beaver), Nisan 2018&#8217;de piyasaya s\u00fcr\u00fclen ve Nisan 2023&#8217;e kadar standart destek, Nisan 2028&#8217;e kadar ise Geni\u015fletilmi\u015f G\u00fcvenlik Bak\u0131m\u0131 (ESM) sunan bir LTS s\u00fcr\u00fcm\u00fcd\u00fcr. Kararl\u0131l\u0131\u011f\u0131, geni\u015f yaz\u0131l\u0131m deposu ve uzun s\u00fcreli deste\u011fi nedeniyle, \u00f6zellikle \u00fcretim ortamlar\u0131nda veya belirli yaz\u0131l\u0131m ba\u011f\u0131ml\u0131l\u0131klar\u0131 olan sistemlerde hala aktif olarak kullan\u0131lmaktad\u0131r. Bu nedenle, bu platform \u00fczerinde Java&#8217;n\u0131n do\u011fru ve g\u00fcvenli bir \u015fekilde nas\u0131l kurulaca\u011f\u0131n\u0131 bilmek, bir\u00e7ok geli\u015ftirici ve sistem y\u00f6neticisi i\u00e7in kritik \u00f6neme sahiptir. Apt (Advanced Package Tool) ise, Debian tabanl\u0131 sistemlerde yaz\u0131l\u0131m kurulumu, g\u00fcncellenmesi ve kald\u0131r\u0131lmas\u0131 i\u00e7in kullan\u0131lan standart ve g\u00fc\u00e7l\u00fc bir komut sat\u0131r\u0131 arac\u0131d\u0131r. Bu rehberde, Apt&#8217;nin sundu\u011fu kolayl\u0131klardan faydalanarak Java kurulumunu ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h3>Java S\u00fcr\u00fcmleri ve Se\u00e7im Kriterleri<\/h3>\n<p>Java ekosistemi, farkl\u0131 implementasyonlar ve s\u00fcr\u00fcm politikalar\u0131 ile olduk\u00e7a geni\u015ftir. Kuruluma ba\u015flamadan \u00f6nce, hangi Java s\u00fcr\u00fcm\u00fcn\u00fc ve implementasyonunu se\u00e7ece\u011finize karar vermeniz \u00f6nemlidir.<\/p>\n<h4>OpenJDK vs. Oracle JDK<\/h4>\n<p>Java&#8217;n\u0131n iki ana implementasyonu bulunmaktad\u0131r: OpenJDK ve Oracle JDK.<\/p>\n<p>*   <strong>OpenJDK (Open Java Development Kit):<\/strong> A\u00e7\u0131k kaynakl\u0131 ve \u00fccretsiz bir Java implementasyonudur. Oracle ve di\u011fer topluluk \u00fcyeleri taraf\u0131ndan geli\u015ftirilir. Genellikle Linux da\u011f\u0131t\u0131mlar\u0131n\u0131n varsay\u0131lan depolar\u0131nda bulunur ve \u00e7o\u011fu kullan\u0131m senaryosu i\u00e7in yeterlidir. Lisanslama a\u00e7\u0131s\u0131ndan GPLv2 (GNU General Public License, version 2) ile lisanslanm\u0131\u015ft\u0131r, bu da onu ticari ve ki\u015fisel kullan\u0131m i\u00e7in tamamen \u00fccretsiz ve \u00f6zg\u00fcr k\u0131lar. Performans ve \u00f6zellikler a\u00e7\u0131s\u0131ndan Oracle JDK ile b\u00fcy\u00fck \u00f6l\u00e7\u00fcde ayn\u0131d\u0131r.<br \/>\n*   <strong>Oracle JDK:<\/strong> Oracle taraf\u0131ndan geli\u015ftirilen ticari bir Java implementasyonudur. Eskiden \u00fccretsiz olan Oracle JDK, Java 11 ve sonras\u0131 s\u00fcr\u00fcmlerden itibaren ticari kullan\u0131m i\u00e7in \u00fccretli hale gelmi\u015ftir. Geli\u015ftirme ve test ama\u00e7l\u0131 kullan\u0131m genellikle \u00fccretsizdir ancak \u00fcretim ortam\u0131nda kullanmak i\u00e7in Oracle&#8217;dan lisans sat\u0131n almak gerekebilir. Baz\u0131 \u00f6zel kurumsal uygulamalar veya eski sistemler Oracle JDK&#8217;n\u0131n belirli \u00f6zelliklerine veya performans optimizasyonlar\u0131na ba\u011f\u0131ml\u0131 olabilir.<\/p>\n<p>Genel olarak, yeni projeler ve sunucu ortamlar\u0131 i\u00e7in <strong>OpenJDK tercih etmek<\/strong> hem lisanslama kolayl\u0131\u011f\u0131 hem de topluluk deste\u011fi a\u00e7\u0131s\u0131ndan daha avantajl\u0131d\u0131r. Ubuntu depolar\u0131nda bulunan Java s\u00fcr\u00fcmleri genellikle OpenJDK tabanl\u0131d\u0131r.<\/p>\n<h4>LTS S\u00fcr\u00fcmleri ve \u00d6nemi<\/h4>\n<p>Java, her alt\u0131 ayda bir yeni bir \u00f6zellik s\u00fcr\u00fcm\u00fc yay\u0131nlar. Ancak, her birka\u00e7 y\u0131lda bir &#8220;Long Term Support&#8221; (LTS) yani Uzun S\u00fcreli Destek s\u00fcr\u00fcmleri \u00e7\u0131kar\u0131r. LTS s\u00fcr\u00fcmleri, uzun s\u00fcreli kararl\u0131l\u0131k, g\u00fcvenlik g\u00fcncellemeleri ve hata d\u00fczeltmeleri sunar. \u00dcretim ortamlar\u0131nda genellikle LTS s\u00fcr\u00fcmleri tercih edilir.<\/p>\n<p>Ubuntu 18.04&#8217;\u00fcn varsay\u0131lan depolar\u0131nda genellikle a\u015fa\u011f\u0131daki LTS OpenJDK s\u00fcr\u00fcmleri bulunur:<\/p>\n<p>*   <strong>OpenJDK 8 (Java 8):<\/strong> Nisan 2014&#8217;te yay\u0131nlanan bu s\u00fcr\u00fcm, hala bir\u00e7ok eski uygulaman\u0131n ba\u011f\u0131ml\u0131l\u0131\u011f\u0131d\u0131r. Ubuntu 18.04 depolar\u0131nda <code>openjdk-8-jdk<\/code> olarak bulunur.<br \/>\n*   <strong>OpenJDK 11 (Java 11):<\/strong> Eyl\u00fcl 2018&#8217;de yay\u0131nlanan bu s\u00fcr\u00fcm, Java 8&#8217;den sonraki ilk modern LTS s\u00fcr\u00fcm\u00fcd\u00fcr ve bir\u00e7ok \u00f6nemli yenilik getirmi\u015ftir. Ubuntu 18.04 depolar\u0131nda <code>openjdk-11-jdk<\/code> olarak bulunur. Bir\u00e7ok yeni uygulama ve geli\u015ftirme i\u00e7in \u00f6nerilen s\u00fcr\u00fcmd\u00fcr.<\/p>\n<p>Daha yeni LTS s\u00fcr\u00fcmleri olan Java 17 (Eyl\u00fcl 2021) veya Java 21 (Eyl\u00fcl 2023) gibi s\u00fcr\u00fcmler, Ubuntu 18.04&#8217;\u00fcn varsay\u0131lan depolar\u0131nda bulunmaz. Bu s\u00fcr\u00fcmleri kurmak i\u00e7in harici PPA (Personal Package Archive) veya manuel kurulum y\u00f6ntemlerine ba\u015fvurmak gerekebilir. Ancak bu makale Apt ile kurulumu odakland\u0131\u011f\u0131 i\u00e7in, varsay\u0131lan depolardaki s\u00fcr\u00fcmlere \u00f6ncelik verece\u011fiz ve PPA kullan\u0131m\u0131n\u0131 da k\u0131saca ele alaca\u011f\u0131z.<\/p>\n<h4>Hangi Java S\u00fcr\u00fcm\u00fcn\u00fc Se\u00e7melisiniz?<\/h4>\n<p>Se\u00e7iminiz genellikle \u015fu fakt\u00f6rlere ba\u011fl\u0131d\u0131r:<\/p>\n<p>*   <strong>Uygulama Gereksinimleri:<\/strong> Geli\u015ftirece\u011finiz veya \u00e7al\u0131\u015ft\u0131raca\u011f\u0131n\u0131z uygulaman\u0131n belirli bir Java s\u00fcr\u00fcm\u00fcne ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 varsa, o s\u00fcr\u00fcm\u00fc se\u00e7melisiniz.<br \/>\n*   <strong>Uyumluluk:<\/strong> Kulland\u0131\u011f\u0131n\u0131z k\u00fct\u00fcphaneler, \u00e7er\u00e7eveler (frameworks) veya di\u011fer ara\u00e7lar\u0131n belirli bir Java s\u00fcr\u00fcm\u00fcyle uyumlu olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<br \/>\n*   <strong>G\u00fcncellik ve G\u00fcvenlik:<\/strong> M\u00fcmk\u00fcnse en yeni desteklenen LTS s\u00fcr\u00fcm\u00fcn\u00fc (\u00f6rne\u011fin OpenJDK 11) tercih etmek, g\u00fcvenlik g\u00fcncellemeleri ve modern \u00f6zelliklerden faydalanman\u0131z\u0131 sa\u011flar.<br \/>\n*   <strong>Kurumsal Politikalar:<\/strong> Baz\u0131 \u015firketlerin belirli Java s\u00fcr\u00fcmlerini kullanma veya belirli implementasyonlar\u0131 (Oracle JDK gibi) tercih etme politikalar\u0131 olabilir.<\/p>\n<h3>Kuruluma Ba\u015flamadan \u00d6nce<\/h3>\n<p>Herhangi bir yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce, sisteminizin g\u00fcncel oldu\u011fundan emin olmak iyi bir uygulamad\u0131r. Bu, ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nlemeye ve en yeni g\u00fcvenlik yamalar\u0131na sahip olman\u0131z\u0131 sa\u011flamaya yard\u0131mc\u0131 olur.<\/p>\n<h4>Sistem G\u00fcncellemesi<\/h4>\n<p>Terminali a\u00e7\u0131n (Ctrl+Alt+T) ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<p>1.  <strong>Paket Listesini G\u00fcncelleme:<\/strong> Bu komut, sisteminizin depolar\u0131ndaki paket listelerini g\u00fcnceller.<\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<p>2.  <strong>Y\u00fckl\u00fc Paketleri Y\u00fckseltme:<\/strong> Bu komut, y\u00fckl\u00fc paketlerinizi en yeni s\u00fcr\u00fcmlerine y\u00fckseltir.<\/p>\n<pre><code class=\"language-bash\">sudo apt upgrade -y<\/code><\/pre>\n<p>    <code>-y<\/code> bayra\u011f\u0131, t\u00fcm sorulara otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 vermenizi sa\u011flar.<br \/>\n3.  <strong>\u00c7ekirdek ve Sistem Y\u00fckseltmeleri (\u0130ste\u011fe Ba\u011fl\u0131 ama \u00d6nemli):<\/strong> Baz\u0131 durumlarda, sistemin \u00e7ekirde\u011fi veya temel sistem bile\u015fenleri de g\u00fcncellenmesi gerekebilir. Bu komut, ba\u011f\u0131ml\u0131l\u0131klar\u0131 da g\u00f6z \u00f6n\u00fcnde bulundurarak tam bir sistem y\u00fckseltmesi yapar.<\/p>\n<pre><code class=\"language-bash\">sudo apt dist-upgrade -y<\/code><\/pre>\n<p>4.  <strong>Kullan\u0131lmayan Paketleri Kald\u0131rma:<\/strong> Bu komut, art\u0131k ihtiya\u00e7 duyulmayan veya otomatik olarak y\u00fcklenmi\u015f ancak ba\u015fka bir pakete ba\u011fl\u0131 olmayan paketleri temizler.<\/p>\n<pre><code class=\"language-bash\">sudo apt autoremove -y<\/code><\/pre>\n<h4>Mevcut Java Kurulumlar\u0131n\u0131 Kontrol Etme<\/h4>\n<p>Sisteminizde \u00f6nceden kurulu bir Java s\u00fcr\u00fcm\u00fc olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek, olas\u0131 \u00e7ak\u0131\u015fmalar\u0131 \u00f6nlemek i\u00e7in \u00f6nemlidir.<\/p>\n<p>1.  <strong>Java S\u00fcr\u00fcm\u00fcn\u00fc Kontrol Etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">java -version<\/code><\/pre>\n<p>    E\u011fer Java kuruluysa, s\u00fcr\u00fcm bilgisi g\u00f6r\u00fcnt\u00fclenecektir. E\u011fer kurulu de\u011filse, &#8220;command not found&#8221; benzeri bir hata al\u0131rs\u0131n\u0131z.<br \/>\n2.  <strong>Java Derleyici (Javac) S\u00fcr\u00fcm\u00fcn\u00fc Kontrol Etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">javac -version<\/code><\/pre>\n<p>    Bu komut, JDK&#8217;n\u0131n (Java Development Kit) kurulu olup olmad\u0131\u011f\u0131n\u0131 g\u00f6sterir. Sadece JRE (Java Runtime Environment) kuruluysa <code>javac<\/code> bulunamaz.<br \/>\n3.  <strong>Java&#8217;n\u0131n Nerede Bulundu\u011funu Kontrol Etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">which java<\/code><\/pre>\n<p>    Bu komut, sistemdeki <code>java<\/code> y\u00fcr\u00fct\u00fclebilir dosyas\u0131n\u0131n tam yolunu g\u00f6sterir.<br \/>\n4.  <strong>Alternatif Java Kurulumlar\u0131n\u0131 G\u00f6r\u00fcnt\u00fcleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">update-alternatives --display java<\/code><\/pre>\n<p>    Bu komut, sisteminizde kurulu olan ve <code>update-alternatives<\/code> sistemi taraf\u0131ndan y\u00f6netilen t\u00fcm Java s\u00fcr\u00fcmlerini listeler. Birden fazla Java s\u00fcr\u00fcm\u00fc varsa, burada listelenirler.<br \/>\n5.  <strong>Y\u00fckl\u00fc OpenJDK Paketlerini G\u00f6r\u00fcnt\u00fcleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">dpkg -l | grep openjdk<\/code><\/pre>\n<p>    Bu komut, t\u00fcm OpenJDK ile ilgili paketleri listeler. E\u011fer daha \u00f6nce Oracle JDK kurduysan\u0131z, <code>dpkg -l | grep jdk<\/code> komutunu da kullanabilirsiniz.<\/p>\n<p>E\u011fer mevcut bir Java kurulumunu kald\u0131rmak isterseniz, <code>sudo apt purge <paket_ad\u0131><\/code> komutunu kullanabilirsiniz (\u00f6rne\u011fin, <code>sudo apt purge openjdk-11-jdk<\/code>). Ancak, genellikle yeni bir s\u00fcr\u00fcm kurarken eski s\u00fcr\u00fcm\u00fc kald\u0131rmak zorunlu de\u011fildir, <code>update-alternatives<\/code> ile y\u00f6netilebilirler.<\/p>\n<h3>OpenJDK Kurulumu<\/h3>\n<p>OpenJDK, Ubuntu&#8217;nun varsay\u0131lan depolar\u0131nda bulunan ve \u00e7o\u011fu geli\u015ftirme ve \u00fcretim ortam\u0131 i\u00e7in \u00f6nerilen Java implementasyonudur. Kurulumu olduk\u00e7a basittir.<\/p>\n<h4>Varsay\u0131lan Depolardan OpenJDK Kurulumu<\/h4>\n<p>Ubuntu 18.04&#8217;\u00fcn varsay\u0131lan depolar\u0131, OpenJDK 8 ve OpenJDK 11 s\u00fcr\u00fcmlerini sunar.<\/p>\n<p>*   <strong>JRE (Java Runtime Environment):<\/strong> Java uygulamalar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in gereken temel bile\u015fenleri i\u00e7erir.<br \/>\n*   <strong>JDK (Java Development Kit):<\/strong> JRE&#8217;ye ek olarak, Java uygulamalar\u0131 geli\u015ftirmek i\u00e7in gereken derleyici (<code>javac<\/code>), hata ay\u0131klay\u0131c\u0131 (<code>jdb<\/code>) ve di\u011fer ara\u00e7lar\u0131 i\u00e7erir. Geli\u015ftiriciler i\u00e7in JDK kurulmas\u0131 zorunludur.<\/p>\n<h5>OpenJDK 11 Kurulumu (\u00d6nerilen)<\/h5>\n<p>Java 11, modern bir LTS s\u00fcr\u00fcm\u00fc oldu\u011fu i\u00e7in \u00e7o\u011fu yeni proje i\u00e7in idealdir. Kurulumu i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt install openjdk-11-jdk -y<\/code><\/pre>\n<p>Bu komut, <code>openjdk-11-jdk<\/code> paketini ve onun ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 (JRE dahil) kuracakt\u0131r.<\/p>\n<p>Ayr\u0131ca, <code>default-jdk<\/code> meta paketi de mevcuttur. Bu paket, Ubuntu&#8217;nun \u00f6nerdi\u011fi varsay\u0131lan JDK s\u00fcr\u00fcm\u00fcn\u00fc kurar. Ubuntu 18.04&#8217;te bu genellikle OpenJDK 11&#8217;i i\u015faret eder:<\/p>\n<pre><code class=\"language-bash\">sudo apt install default-jdk -y<\/code><\/pre>\n<p>Bu, genellikle <code>openjdk-11-jdk<\/code> paketini kuracakt\u0131r, ancak gelecekteki Ubuntu s\u00fcr\u00fcmlerinde farkl\u0131 bir OpenJDK LTS s\u00fcr\u00fcm\u00fcn\u00fc i\u015faret edebilir. Belirli bir s\u00fcr\u00fcm\u00fc kurmak istiyorsan\u0131z, <code>openjdk-11-jdk<\/code> gibi do\u011frudan paket ad\u0131n\u0131 kullanmak daha iyidir.<\/p>\n<h5>OpenJDK 8 Kurulumu (Eski Uygulamalar \u0130\u00e7in)<\/h5>\n<p>E\u011fer eski bir Java uygulamas\u0131yla \u00e7al\u0131\u015fman\u0131z gerekiyorsa veya belirli bir sistem Java 8&#8217;e ba\u011f\u0131ml\u0131ysa, OpenJDK 8&#8217;i kurman\u0131z gerekebilir:<\/p>\n<pre><code class=\"language-bash\">sudo apt install openjdk-8-jdk -y<\/code><\/pre>\n<p>Benzer \u015fekilde, <code>default-jre<\/code> veya <code>default-jdk<\/code> meta paketleri de Java 8&#8217;i i\u015faret edebilir, ancak bu genellikle Ubuntu 18.04 i\u00e7in OpenJDK 11&#8217;e ge\u00e7i\u015f yapm\u0131\u015ft\u0131r.<\/p>\n<h5>OpenJDK 17\/21 Kurulumu (Harici PPA ile)<\/h5>\n<p>Ubuntu 18.04&#8217;\u00fcn varsay\u0131lan depolar\u0131nda Java 17 veya Java 21 gibi daha yeni LTS s\u00fcr\u00fcmleri bulunmaz. Bu s\u00fcr\u00fcmleri kurmak i\u00e7in genellikle \u00fc\u00e7\u00fcnc\u00fc taraf bir PPA (Personal Package Archive) kullanman\u0131z gerekir. <strong>\u00d6nemli bir not:<\/strong> \u00dc\u00e7\u00fcnc\u00fc taraf PPA&#8217;lar, resmi Ubuntu depolar\u0131 kadar g\u00fcvenli veya g\u00fcncel olmayabilir. Kullanmadan \u00f6nce dikkatli ara\u015ft\u0131rma yapman\u0131z \u00f6nerilir.<\/p>\n<p>Bir \u00f6rnek olarak, &#8220;openjdk-r&#8221; PPA&#8217;s\u0131 baz\u0131 daha yeni OpenJDK s\u00fcr\u00fcmlerini sunabilir. Ancak, 18.04 i\u00e7in bile en yeni s\u00fcr\u00fcmlerin deste\u011fi k\u0131s\u0131tl\u0131 olabilir. Yine de, genel yakla\u015f\u0131m \u015f\u00f6yledir:<\/p>\n<p>1.  <strong>PPA&#8217;y\u0131 Ekleyin:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo add-apt-repository ppa:openjdk-r\/ppa -y<\/code><\/pre>\n<p>2.  <strong>Paket Listesini G\u00fcncelleyin:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<p>3.  <strong>\u0130stedi\u011finiz OpenJDK S\u00fcr\u00fcm\u00fcn\u00fc Kurun:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt install openjdk-17-jdk -y\n    # veya\n    sudo apt install openjdk-21-jdk -y<\/code><\/pre>\n<p>    E\u011fer bu paketler PPA&#8217;da mevcutsa kurulacakt\u0131r. Mevcut de\u011filse, &#8220;Unable to locate package&#8221; hatas\u0131 al\u0131rs\u0131n\u0131z. Bu durumda, ya ba\u015fka bir PPA araman\u0131z ya da manuel kurulum y\u00f6ntemine ba\u015fvurman\u0131z gerekir ki bu makalenin kapsam\u0131 d\u0131\u015f\u0131ndad\u0131r.<\/p>\n<h3>Oracle JDK Kurulumu<\/h3>\n<p>Oracle JDK&#8217;n\u0131n lisanslama modelindeki de\u011fi\u015fiklikler nedeniyle, do\u011frudan Apt depolar\u0131nda kolayca bulunmaz. Kurulumu genellikle manuel indirme ve kurma veya \u00fc\u00e7\u00fcnc\u00fc taraf bir PPA kullanma yoluyla yap\u0131l\u0131r. Apt ile kurulumu kolayla\u015ft\u0131rmak i\u00e7in genellikle \u00fc\u00e7\u00fcnc\u00fc taraf PPA&#8217;lar tercih edilir.<\/p>\n<h4>Oracle JDK Neden Daha Karma\u015f\u0131k?<\/h4>\n<p>Java 11&#8217;den itibaren Oracle JDK&#8217;n\u0131n ticari kullan\u0131m\u0131 i\u00e7in lisans gerektirmesi ve resmi olarak Apt depolar\u0131nda bulunmamas\u0131, kurulumunu OpenJDK&#8217;ya g\u00f6re daha karma\u015f\u0131k hale getirir. \u00dc\u00e7\u00fcnc\u00fc taraf PPA&#8217;lar, bu karma\u015f\u0131kl\u0131\u011f\u0131 Apt paket y\u00f6neticisi arac\u0131l\u0131\u011f\u0131yla \u00e7\u00f6zmeye \u00e7al\u0131\u015f\u0131r.<\/p>\n<h4>Third-Party PPA ile Kurulum<\/h4>\n<p>Oracle JDK&#8217;y\u0131 Apt ile kurman\u0131n en yayg\u0131n yollar\u0131ndan biri, &#8220;Linux Uprising&#8221; PPA&#8217;s\u0131 gibi \u00fc\u00e7\u00fcnc\u00fc taraf bir PPA kullanmakt\u0131r. Bu PPA, Oracle JDK&#8217;y\u0131 indirip kuran bir <code>oracle-javaX-installer<\/code> paketi sa\u011flar.<\/p>\n<p><strong>Ad\u0131mlar:<\/strong><\/p>\n<p>1.  <strong>PPA&#8217;y\u0131 Ekleyin:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo add-apt-repository ppa:linuxuprising\/java -y<\/code><\/pre>\n<p>    Bu PPA, Oracle Java 8, 11, 13, 14, 15, 16 ve 17 gibi s\u00fcr\u00fcmler i\u00e7in y\u00fckleyiciler sunar.<br \/>\n2.  <strong>Paket Listesini G\u00fcncelleyin:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<p>3.  <strong>Oracle JDK&#8217;y\u0131 Kurun:<\/strong><br \/>\n    \u00d6rne\u011fin, Oracle Java 11&#8217;i kurmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo apt install oracle-java11-installer -y<\/code><\/pre>\n<p>    Veya Oracle Java 8 i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo apt install oracle-java8-installer -y<\/code><\/pre>\n<p>    Kurulum s\u0131ras\u0131nda, Oracle&#8217;\u0131n lisans anla\u015fmas\u0131n\u0131 kabul etmeniz istenecektir. Bu, terminalde bir metin tabanl\u0131 aray\u00fcz olarak g\u00f6r\u00fcnecektir. Y\u00f6nlendirmeleri takip ederek anla\u015fmay\u0131 kabul edin.<\/p>\n<p><strong>Uyar\u0131lar:<\/strong><br \/>\n*   \u00dc\u00e7\u00fcnc\u00fc taraf PPA&#8217;lar, resmi Ubuntu depolar\u0131 kadar g\u00fcvenli veya g\u00fcncel olmayabilir. PPA&#8217;n\u0131n g\u00fcvenilirli\u011fini ve bak\u0131m durumunu ara\u015ft\u0131rman\u0131z \u00f6nemlidir.<br \/>\n*   Oracle&#8217;\u0131n lisans anla\u015fmas\u0131n\u0131 dikkatlice okuyun ve ticari kullan\u0131m i\u00e7in gereken lisanslar\u0131 edindi\u011finizden emin olun.<br \/>\n*   PPA&#8217;y\u0131 ekledikten sonra, <code>sudo apt update<\/code> komutunu \u00e7al\u0131\u015ft\u0131rmazsan\u0131z, ilgili paketleri bulamazs\u0131n\u0131z.<\/p>\n<h3>Java Kurulumunu Do\u011frulama<\/h3>\n<p>Java kurulumu tamamland\u0131ktan sonra, her \u015feyin do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in do\u011frulama ad\u0131mlar\u0131n\u0131 uygulamak \u00f6nemlidir.<\/p>\n<p>1.  <strong>Java S\u00fcr\u00fcm\u00fcn\u00fc Kontrol Etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">java -version<\/code><\/pre>\n<p>    Bu komut, sisteminizde \u015fu anda etkin olan Java Runtime Environment (JRE) s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6stermelidir. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-\">openjdk version \"11.0.12\" 2021-07-20\n    OpenJDK Runtime Environment (build 11.0.12+7-Ubuntu-0ubuntu218.04)\n    OpenJDK 64-Bit Server VM (build 11.0.12+7-Ubuntu-0ubuntu218.04, mixed mode, sharing)<\/code><\/pre>\n<p>2.  <strong>Java Derleyici (Javac) S\u00fcr\u00fcm\u00fcn\u00fc Kontrol Etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">javac -version<\/code><\/pre>\n<p>    Bu komut, Java Development Kit (JDK) derleyicisinin s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6stermelidir. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-\">javac 11.0.12<\/code><\/pre>\n<p>    E\u011fer <code>javac<\/code> komutu bulunamazsa, muhtemelen sadece JRE kurdunuz. JDK kurdu\u011funuzdan emin olun (\u00f6rne\u011fin <code>openjdk-11-jdk<\/code>).<br \/>\n3.  <strong><code>JAVA_HOME<\/code> Ortam De\u011fi\u015fkenini Kontrol Etme (E\u011fer Ayarl\u0131ysa):<\/strong><\/p>\n<pre><code class=\"language-bash\">echo $JAVA_HOME<\/code><\/pre>\n<p>    Bu komut, <code>JAVA_HOME<\/code> ortam de\u011fi\u015fkeninin de\u011ferini g\u00f6sterir. E\u011fer bo\u015fsa, ayarlanmam\u0131\u015ft\u0131r. Bu de\u011fi\u015fken, baz\u0131 Java tabanl\u0131 uygulamalar ve geli\u015ftirme ara\u00e7lar\u0131 i\u00e7in gereklidir. Nas\u0131l ayarlanaca\u011f\u0131n\u0131 ileride a\u00e7\u0131klayaca\u011f\u0131z.<br \/>\n4.  <strong>Aktif Java Y\u00fcr\u00fct\u00fclebilir Dosyas\u0131n\u0131n Yolunu Kontrol Etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">which java<\/code><\/pre>\n<p>    Bu komut, sistem PATH&#8217;inizdeki <code>java<\/code> komutunun hangi dosyaya i\u015faret etti\u011fini g\u00f6sterir. Genellikle <code>\/usr\/bin\/java<\/code> \u00e7\u0131kt\u0131s\u0131n\u0131 verir, ki bu da <code>update-alternatives<\/code> taraf\u0131ndan y\u00f6netilen sembolik bir ba\u011fd\u0131r.<br \/>\n5.  <strong>T\u00fcm Java Alternatiflerini G\u00f6r\u00fcnt\u00fcleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">update-alternatives --display java<\/code><\/pre>\n<p>    Bu komut, sistemde kurulu olan ve <code>update-alternatives<\/code> sistemi taraf\u0131ndan y\u00f6netilen t\u00fcm Java s\u00fcr\u00fcmlerini ve varsay\u0131lan olarak hangisinin se\u00e7ili oldu\u011funu detayl\u0131 bir \u015fekilde g\u00f6sterir.<\/p>\n<h3>Birden Fazla Java S\u00fcr\u00fcm\u00fcn\u00fc Y\u00f6netme<\/h3>\n<p>Geli\u015ftirme ortamlar\u0131nda veya farkl\u0131 uygulamalar\u0131n farkl\u0131 Java s\u00fcr\u00fcmlerine ihtiya\u00e7 duydu\u011fu durumlarda, sisteminizde birden fazla Java s\u00fcr\u00fcm\u00fc kurulu olabilir. Ubuntu, bu t\u00fcr senaryolar\u0131 y\u00f6netmek i\u00e7in <code>update-alternatives<\/code> komutunu sa\u011flar.<\/p>\n<h4><code>update-alternatives<\/code> Komutu<\/h4>\n<p><code>update-alternatives<\/code> komutu, sisteminizdeki ayn\u0131 i\u015flevi g\u00f6ren farkl\u0131 programlar aras\u0131nda ge\u00e7i\u015f yapman\u0131z\u0131 sa\u011flar. Java i\u00e7in, <code>java<\/code>, <code>javac<\/code>, <code>jar<\/code>, <code>javadoc<\/code> gibi komutlar bu sistem taraf\u0131ndan y\u00f6netilir.<\/p>\n<p>1.  <strong>Varsay\u0131lan Java S\u00fcr\u00fcm\u00fcn\u00fc Ayarlama:<\/strong><br \/>\n    Sisteminizde kurulu olan Java s\u00fcr\u00fcmlerini listelemek ve varsay\u0131lan olarak hangisini kullanaca\u011f\u0131n\u0131z\u0131 se\u00e7mek i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo update-alternatives --config java<\/code><\/pre>\n<p>    Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, kurulu olan Java alternatiflerinin bir listesini g\u00f6receksiniz. Her alternatifin yan\u0131nda bir numara bulunur. \u0130stedi\u011finiz Java s\u00fcr\u00fcm\u00fcn\u00fcn numaras\u0131n\u0131 girip Enter tu\u015funa basarak varsay\u0131lan\u0131 de\u011fi\u015ftirebilirsiniz. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-\">There are 2 choices for the alternative java (providing \/usr\/bin\/java).\n\n      Selection    Path                                        Priority   Status\n    ------------------------------------------------------------\n    * 0            \/usr\/lib\/jvm\/java-11-openjdk-amd64\/bin\/java   1101      auto mode\n      1            \/usr\/lib\/jvm\/java-8-openjdk-amd64\/jre\/bin\/java 1081      manual mode\n      2            \/usr\/lib\/jvm\/java-11-openjdk-amd64\/bin\/java   1101      manual mode\n\n    Press <enter> to keep the current choice[*], or type selection number:<\/code><\/pre>\n<p>    Burada, <code>0<\/code> otomatik modda se\u00e7ili olan\u0131, <code>1<\/code> ve <code>2<\/code> ise manuel olarak se\u00e7ilebilecek alternatifleri g\u00f6sterir. \u0130stedi\u011finiz s\u00fcr\u00fcm\u00fcn numaras\u0131n\u0131 girerek se\u00e7iminizi yapabilirsiniz.<br \/>\n2.  <strong>Varsay\u0131lan Javac S\u00fcr\u00fcm\u00fcn\u00fc Ayarlama:<\/strong><br \/>\n    Benzer \u015fekilde, <code>javac<\/code> (Java derleyici) i\u00e7in de varsay\u0131lan s\u00fcr\u00fcm\u00fc ayarlayabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo update-alternatives --config javac<\/code><\/pre>\n<p>    Bu komutu da <code>java<\/code> i\u00e7in yapt\u0131\u011f\u0131n\u0131z gibi istedi\u011finiz <code>javac<\/code> s\u00fcr\u00fcm\u00fcn\u00fc se\u00e7mek i\u00e7in kullan\u0131n.<br \/>\n3.  <strong>Di\u011fer Java Ara\u00e7lar\u0131n\u0131 Y\u00f6netme:<\/strong><br \/>\n    <code>jar<\/code>, <code>javadoc<\/code>, <code>javap<\/code> gibi di\u011fer Java ara\u00e7lar\u0131 i\u00e7in de ayn\u0131 komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo update-alternatives --config jar\n    sudo update-alternatives --config javadoc<\/code><\/pre>\n<p><code>update-alternatives<\/code> sistemi, <code>\/usr\/bin\/java<\/code> gibi ortak yollar\u0131n asl\u0131nda <code>\/etc\/alternatives\/java<\/code> gibi sembolik ba\u011flant\u0131lar oldu\u011funu ve bu ba\u011flant\u0131lar\u0131n da se\u00e7ti\u011finiz ger\u00e7ek Java y\u00fcr\u00fct\u00fclebilir dosyas\u0131na i\u015faret etti\u011fini unutmay\u0131n.<\/p>\n<h4>JAVA_HOME Ortam De\u011fi\u015fkeni<\/h4>\n<p><code>JAVA_HOME<\/code> ortam de\u011fi\u015fkeni, Java&#8217;n\u0131n kurulu oldu\u011fu ana dizini g\u00f6steren bir sistem de\u011fi\u015fkenidir. Bir\u00e7ok Java tabanl\u0131 uygulama, ara\u00e7 (Maven, Gradle, Tomcat, Jenkins vb.) ve geli\u015ftirme ortam\u0131 (IDE&#8217;ler) bu de\u011fi\u015fkeni kullanarak Java kurulumunu bulur. <code>update-alternatives<\/code> komutu sistemi genelinde <code>java<\/code> komutunun hangi s\u00fcr\u00fcm\u00fc kullanaca\u011f\u0131n\u0131 belirlese de, <code>JAVA_HOME<\/code> do\u011frudan belirli bir dizini i\u015faret eder ve baz\u0131 uygulamalar i\u00e7in zorunludur.<\/p>\n<p><code>JAVA_HOME<\/code> de\u011fi\u015fkenini ayarlamak i\u00e7in birka\u00e7 y\u00f6ntem vard\u0131r:<\/p>\n<p>1.  <strong>Sistem Geneli \u0130\u00e7in (<code>\/etc\/environment<\/code>):<\/strong><br \/>\n    Bu dosya, t\u00fcm kullan\u0131c\u0131lar ve sistem genelinde ortam de\u011fi\u015fkenlerini ayarlamak i\u00e7in kullan\u0131l\u0131r.<br \/>\n    Dosyay\u0131 a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/environment<\/code><\/pre>\n<p>    Dosyan\u0131n sonuna a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyin (\u00f6rne\u011fin OpenJDK 11 i\u00e7in):<\/p>\n<pre><code class=\"language-\">JAVA_HOME=\"\/usr\/lib\/jvm\/java-11-openjdk-amd64\"<\/code><\/pre>\n<p>    Veya OpenJDK 8 i\u00e7in:<\/p>\n<pre><code class=\"language-\">JAVA_HOME=\"\/usr\/lib\/jvm\/java-8-openjdk-amd64\/jre\"<\/code><\/pre>\n<p>    <strong>Not:<\/strong> OpenJDK kurulumlar\u0131nda, JDK&#8217;n\u0131n ana dizini genellikle <code>\/usr\/lib\/jvm\/java-X-openjdk-amd64<\/code> \u015feklindedir. Do\u011fru yolu bulmak i\u00e7in <code>readlink -f \/usr\/bin\/java<\/code> komutunu \u00e7al\u0131\u015ft\u0131rabilirsiniz, bu size <code>\/usr\/lib\/jvm\/java-11-openjdk-amd64\/bin\/java<\/code> gibi bir \u00e7\u0131kt\u0131 verecektir. <code>JAVA_HOME<\/code> i\u00e7in <code>\/bin\/java<\/code> k\u0131sm\u0131n\u0131 \u00e7\u0131karman\u0131z gerekir.<\/p>\n<p>    De\u011fi\u015fiklikleri kaydettikten sonra (Ctrl+O, Enter, Ctrl+X), sistemi yeniden ba\u015flatman\u0131z veya ortam de\u011fi\u015fkenlerini yeniden y\u00fcklemeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">source \/etc\/environment<\/code><\/pre>\n<p>    Ancak, <code>\/etc\/environment<\/code> de\u011fi\u015fiklikleri genellikle oturum a\u00e7\u0131ld\u0131\u011f\u0131nda uygulan\u0131r, bu y\u00fczden yeniden oturum a\u00e7mak veya sistemi yeniden ba\u015flatmak daha g\u00fcvenli bir yoldur.<br \/>\n2.  <strong>Kullan\u0131c\u0131 Baz\u0131nda (<code>~\/.bashrc<\/code> veya <code>~\/.profile<\/code>):<\/strong><br \/>\n    E\u011fer <code>JAVA_HOME<\/code>&#8216;\u0131 sadece belirli bir kullan\u0131c\u0131 i\u00e7in ayarlamak istiyorsan\u0131z, kullan\u0131c\u0131n\u0131n ana dizinindeki <code>.bashrc<\/code> (her yeni terminal oturumu i\u00e7in) veya <code>.profile<\/code> (oturum a\u00e7\u0131ld\u0131\u011f\u0131nda) dosyas\u0131na ekleyebilirsiniz.<\/p>\n<pre><code class=\"language-bash\">nano ~\/.bashrc<\/code><\/pre>\n<p>    Dosyan\u0131n sonuna a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 ekleyin:<\/p>\n<pre><code class=\"language-bash\">export JAVA_HOME=\"\/usr\/lib\/jvm\/java-11-openjdk-amd64\"\n    export PATH=$PATH:$JAVA_HOME\/bin<\/code><\/pre>\n<p>    De\u011fi\u015fiklikleri kaydettikten sonra, yeni ayarlar\u0131 uygulamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">source ~\/.bashrc<\/code><\/pre>\n<p>    <code>export PATH=$PATH:$JAVA_HOME\/bin<\/code> sat\u0131r\u0131, <code>JAVA_HOME<\/code> dizinindeki <code>bin<\/code> klas\u00f6r\u00fcn\u00fc PATH&#8217;e ekler, b\u00f6ylece <code>java<\/code> ve <code>javac<\/code> komutlar\u0131n\u0131 do\u011frudan kullanabilirsiniz. Ancak <code>update-alternatives<\/code> zaten bunu yapt\u0131\u011f\u0131 i\u00e7in bu sat\u0131r genellikle iste\u011fe ba\u011fl\u0131d\u0131r.<\/p>\n<p><strong><code>update-alternatives<\/code> ile <code>JAVA_HOME<\/code> Senkronizasyonu:<\/strong><br \/>\nBaz\u0131 kullan\u0131c\u0131lar, <code>JAVA_HOME<\/code> de\u011fi\u015fkenini <code>update-alternatives<\/code> taraf\u0131ndan se\u00e7ilen Java s\u00fcr\u00fcm\u00fcne dinamik olarak ba\u011flamak isteyebilir. Bunu yapmak i\u00e7in, <code>JAVA_HOME<\/code>&#8216;\u0131 do\u011frudan bir yola sabitlemek yerine, <code>update-alternatives<\/code>&#8216;\u0131n sembolik ba\u011flant\u0131s\u0131n\u0131 kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">export JAVA_HOME=$(update-alternatives --query java | grep Value | cut -d ' ' -f 2 | sed 's\/\\\/bin\\\/java\/\/')<\/code><\/pre>\n<p>Bu komut, <code>java<\/code> komutunun <code>update-alternatives<\/code> taraf\u0131ndan i\u015faret edildi\u011fi ger\u00e7ek yolu al\u0131r ve <code>\/bin\/java<\/code> k\u0131sm\u0131n\u0131 kald\u0131rarak <code>JAVA_HOME<\/code> de\u011fi\u015fkenine atar. Bu sat\u0131r\u0131 <code>.bashrc<\/code> dosyan\u0131za ekleyerek, <code>JAVA_HOME<\/code>&#8216;\u0131n\u0131z\u0131n her zaman <code>update-alternatives<\/code> ile se\u00e7ilen Java s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6stermesini sa\u011flayabilirsiniz. Ancak bu daha karma\u015f\u0131k bir yakla\u015f\u0131md\u0131r ve \u00e7o\u011fu durumda statik bir yol belirlemek yeterlidir.<\/p>\n<h3>Java Uygulamalar\u0131n\u0131 \u00c7al\u0131\u015ft\u0131rma<\/h3>\n<p>Java kurulumunuzu do\u011frulad\u0131ktan sonra, basit bir &#8220;Hello World&#8221; uygulamas\u0131 yazarak her \u015feyin do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olabilirsiniz.<\/p>\n<p>1.  <strong>Java Kaynak Dosyas\u0131 Olu\u015fturma:<\/strong><br \/>\n    Bir metin d\u00fczenleyici a\u00e7\u0131n ve <code>HelloWorld.java<\/code> ad\u0131nda bir dosya olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">nano HelloWorld.java<\/code><\/pre>\n<p>    \u0130\u00e7ine a\u015fa\u011f\u0131daki kodu yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-java\">public class HelloWorld {\n        public static void main(String[] args) {\n            System.out.println(\"Hello, Java on Ubuntu 18.04!\");\n        }\n    }<\/code><\/pre>\n<p>    Kaydedin ve kapat\u0131n.<\/p>\n<p>2.  <strong>Java Kodunu Derleme:<\/strong><br \/>\n    Terminalde, <code>HelloWorld.java<\/code> dosyas\u0131n\u0131n bulundu\u011fu dizine gidin ve kodu derleyin:<\/p>\n<pre><code class=\"language-bash\">javac HelloWorld.java<\/code><\/pre>\n<p>    E\u011fer herhangi bir hata almazsan\u0131z, bu komut <code>HelloWorld.class<\/code> ad\u0131nda bir bytecode dosyas\u0131 olu\u015fturacakt\u0131r.<\/p>\n<p>3.  <strong>Java Uygulamas\u0131n\u0131 \u00c7al\u0131\u015ft\u0131rma:<\/strong><br \/>\n    Derlenen bytecode&#8217;u \u00e7al\u0131\u015ft\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">java HelloWorld<\/code><\/pre>\n<p>    Ekranda &#8220;Hello, Java on Ubuntu 18.04!&#8221; \u00e7\u0131kt\u0131s\u0131n\u0131 g\u00f6rmelisiniz. Bu, Java kurulumunuzun tamamen i\u015flevsel oldu\u011funu g\u00f6sterir.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>Java kurulumu s\u0131ras\u0131nda veya sonras\u0131nda baz\u0131 sorunlarla kar\u015f\u0131la\u015fmak m\u00fcmk\u00fcnd\u00fcr. \u0130\u015fte en yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<h4>&#8220;java: command not found&#8221; veya &#8220;javac: command not found&#8221;<\/h4>\n<p>Bu hata, sisteminizin <code>PATH<\/code> ortam de\u011fi\u015fkeninde Java y\u00fcr\u00fct\u00fclebilir dosyalar\u0131n\u0131n bulunmad\u0131\u011f\u0131 anlam\u0131na gelir.<\/p>\n<p>*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   Java&#8217;n\u0131n do\u011fru bir \u015fekilde kuruldu\u011fundan emin olun (<code>java -version<\/code>, <code>javac -version<\/code> komutlar\u0131n\u0131 tekrar deneyin).<br \/>\n    *   <code>sudo update-alternatives --config java<\/code> ve <code>sudo update-alternatives --config javac<\/code> komutlar\u0131n\u0131 kullanarak varsay\u0131lan Java s\u00fcr\u00fcm\u00fcn\u00fcn ayarland\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   <code>which java<\/code> komutuyla <code>java<\/code> y\u00fcr\u00fct\u00fclebilir dosyas\u0131n\u0131n yolunu kontrol edin. E\u011fer <code>\/usr\/bin\/java<\/code> gibi bir \u00e7\u0131kt\u0131 vermiyorsa, kurulumda bir sorun olabilir.<br \/>\n    *   <code>JAVA_HOME<\/code> ortam de\u011fi\u015fkenini do\u011fru ayarlad\u0131ysan\u0131z, <code>export PATH=$PATH:$JAVA_HOME\/bin<\/code> sat\u0131r\u0131n\u0131n <code>.bashrc<\/code> veya <code>\/etc\/environment<\/code> dosyan\u0131zda oldu\u011fundan ve de\u011fi\u015fikli\u011fin <code>source<\/code> komutuyla veya yeniden oturum a\u00e7arak uyguland\u0131\u011f\u0131ndan emin olun.<\/p>\n<h4>Oracle JDK Kurulumunda Lisans Anla\u015fmas\u0131 Sorunlar\u0131<\/h4>\n<p>\u00dc\u00e7\u00fcnc\u00fc taraf PPA&#8217;lar arac\u0131l\u0131\u011f\u0131yla Oracle JDK kurarken, lisans anla\u015fmas\u0131 penceresi bazen d\u00fczg\u00fcn g\u00f6r\u00fcnt\u00fclenmeyebilir veya tak\u0131labilir.<\/p>\n<p>*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    Kurulumu tamamlamak i\u00e7in lisans anla\u015fmas\u0131n\u0131 kabul etmeniz gerekir. E\u011fer bu ekran\u0131 ka\u00e7\u0131r\u0131rsan\u0131z veya tak\u0131l\u0131rsa, a\u015fa\u011f\u0131daki komutu kullanarak paketi yeniden yap\u0131land\u0131rabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo dpkg-reconfigure oracle-javaX-installer<\/code><\/pre>\n<p>    Burada <code>X<\/code> kurmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z Java s\u00fcr\u00fcm\u00fcd\u00fcr (\u00f6rne\u011fin <code>oracle-java11-installer<\/code>). Bu komut, lisans anla\u015fmas\u0131 ekran\u0131n\u0131 tekrar getirecektir.<\/p>\n<h4><code>apt update<\/code> Hatalar\u0131<\/h4>\n<p>PPA ekledikten sonra <code>sudo apt update<\/code> komutu hata veriyorsa (\u00f6rne\u011fin, &#8220;GPG error&#8221;, &#8220;The repository does not have a Release file&#8221;), bu PPA&#8217;n\u0131n g\u00fcvenli anahtar\u0131n\u0131n eksik oldu\u011fu veya PPA&#8217;n\u0131n art\u0131k aktif olmad\u0131\u011f\u0131 anlam\u0131na gelebilir.<\/p>\n<p>*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   <code>sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <KEY_ID><\/code> komutuyla eksik GPG anahtar\u0131n\u0131 eklemeyi deneyin. Hata mesaj\u0131nda genellikle <code>KEY_ID<\/code> belirtilir.<br \/>\n    *   E\u011fer PPA art\u0131k g\u00fcncel de\u011filse veya Ubuntu 18.04 i\u00e7in desteklenmiyorsa, <code>\/etc\/apt\/sources.list.d\/<\/code> dizinindeki ilgili PPA dosyas\u0131n\u0131 kald\u0131rman\u0131z gerekebilir. \u00d6rne\u011fin, <code>sudo rm \/etc\/apt\/sources.list.d\/linuxuprising-java-bionic.list<\/code>.<br \/>\n    *   A\u011f ba\u011flant\u0131n\u0131z\u0131 kontrol edin.<\/p>\n<h4>Do\u011fru Java S\u00fcr\u00fcm\u00fcn\u00fcn Kullan\u0131lmamas\u0131<\/h4>\n<p>Sistemde birden fazla Java s\u00fcr\u00fcm\u00fc varken, bir uygulaman\u0131n yanl\u0131\u015f s\u00fcr\u00fcm\u00fc kullanmas\u0131 yayg\u0131n bir sorundur.<\/p>\n<p>*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   <code>sudo update-alternatives --config java<\/code> ve <code>sudo update-alternatives --config javac<\/code> komutlar\u0131yla sistem genelindeki varsay\u0131lan Java s\u00fcr\u00fcm\u00fcn\u00fc ayarlad\u0131\u011f\u0131n\u0131zdan emin olun.<br \/>\n    *   <code>JAVA_HOME<\/code> ortam de\u011fi\u015fkeninin do\u011fru Java s\u00fcr\u00fcm\u00fcn\u00fc i\u015faret etti\u011fini kontrol edin. \u00d6zellikle Maven, Gradle veya Tomcat gibi ara\u00e7lar i\u00e7in bu \u00e7ok \u00f6nemlidir. Bu ara\u00e7lar genellikle <code>JAVA_HOME<\/code>&#8216;\u0131 do\u011frudan okur ve <code>update-alternatives<\/code> taraf\u0131ndan belirlenen sistem PATH&#8217;ini g\u00f6z ard\u0131 edebilir.<br \/>\n    *   Baz\u0131 IDE&#8217;ler (Eclipse, IntelliJ IDEA) veya \u00f6zel uygulamalar, kendi Java yollar\u0131n\u0131 ayarlama se\u00e7ene\u011fi sunar. Uygulaman\u0131n kendi ayarlar\u0131n\u0131 kontrol edin ve do\u011fru JDK yolunu belirtin.<br \/>\n    *   Kullan\u0131c\u0131n\u0131n <code>.bashrc<\/code> veya <code>.profile<\/code> dosyas\u0131nda yanl\u0131\u015f bir <code>JAVA_HOME<\/code> veya <code>PATH<\/code> ayar\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<\/p>\n<h4>G\u00fcvenlik ve G\u00fcncelleme<\/h4>\n<p>Eski Java s\u00fcr\u00fcmlerini kullanmak veya sistem g\u00fcncellemelerini ihmal etmek g\u00fcvenlik riskleri olu\u015fturabilir.<\/p>\n<p>*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   M\u00fcmk\u00fcnse her zaman en yeni LTS OpenJDK s\u00fcr\u00fcm\u00fcn\u00fc kullan\u0131n (Ubuntu 18.04 i\u00e7in OpenJDK 11).<br \/>\n    *   Sisteminizi d\u00fczenli olarak <code>sudo apt update && sudo apt upgrade -y<\/code> komutlar\u0131yla g\u00fcncelleyin. Bu, Java dahil t\u00fcm kurulu paketler i\u00e7in g\u00fcvenlik yamalar\u0131n\u0131 ve hata d\u00fczeltmelerini alman\u0131z\u0131 sa\u011flar.<br \/>\n    *   Kullanmad\u0131\u011f\u0131n\u0131z eski Java s\u00fcr\u00fcmlerini kald\u0131rmay\u0131 d\u00fc\u015f\u00fcn\u00fcn (<code>sudo apt purge openjdk-X-jdk<\/code>).<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Ubuntu 18.04 \u00fczerine Java kurulumu, Apt paket y\u00f6neticisi sayesinde olduk\u00e7a kolay ve y\u00f6netilebilirdir. OpenJDK, lisanslama kolayl\u0131\u011f\u0131 ve topluluk deste\u011fi nedeniyle \u00e7o\u011fu kullan\u0131c\u0131 i\u00e7in \u00f6nerilen se\u00e7enektir ve Ubuntu&#8217;nun varsay\u0131lan depolar\u0131nda kolayca bulunur. \u00d6zellikle OpenJDK 11, modern uygulamalar i\u00e7in g\u00fc\u00e7l\u00fc ve g\u00fcncel bir LTS s\u00fcr\u00fcm\u00fcd\u00fcr. E\u011fer belirli bir Oracle JDK ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131z varsa, \u00fc\u00e7\u00fcnc\u00fc taraf PPA&#8217;lar arac\u0131l\u0131\u011f\u0131yla kurulum yapmak m\u00fcmk\u00fcnd\u00fcr, ancak lisanslama ve g\u00fcvenlik hususlar\u0131 g\u00f6z \u00f6n\u00fcnde bulundurulmal\u0131d\u0131r.<\/p>\n<p>Bu rehberde sunulan ad\u0131mlar\u0131 takip ederek, Ubuntu 18.04 sisteminizde Java&#8217;y\u0131 ba\u015far\u0131yla kurabilir, farkl\u0131 s\u00fcr\u00fcmleri y\u00f6netebilir ve Java uygulamalar\u0131n\u0131z\u0131 sorunsuz bir \u015fekilde geli\u015ftirmeye veya \u00e7al\u0131\u015ft\u0131rmaya ba\u015flayabilirsiniz. Sistem g\u00fcncellemelerini d\u00fczenli olarak yapmak, <code>update-alternatives<\/code> ile s\u00fcr\u00fcmleri do\u011fru y\u00f6netmek ve <code>JAVA_HOME<\/code> ortam de\u011fi\u015fkenini gerekti\u011finde ayarlamak, sorunsuz bir Java geli\u015ftirme deneyimi i\u00e7in kritik \u00f6neme sahiptir. Java ekosisteminin s\u00fcrekli geli\u015fti\u011fini ve Ubuntu 18.04&#8217;\u00fcn ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fcn sona yakla\u015ft\u0131\u011f\u0131n\u0131 unutmay\u0131n. Gelecekteki projeleriniz i\u00e7in daha yeni Ubuntu LTS s\u00fcr\u00fcmlerini (\u00f6rne\u011fin 20.04 veya 22.04) de\u011ferlendirmek, daha yeni Java LTS s\u00fcr\u00fcmlerine (17, 21) daha kolay eri\u015fim sa\u011flaman\u0131za olanak tan\u0131yacakt\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 18.04 \u00dczerine Apt ile Java Kurulumu: Kapsaml\u0131 Bir Rehber\nJava, d\u00fcnya genelinde en yayg\u0131n kullan\u0131lan programlama dillerinden ve platformla","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-36989","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ubuntu 18.04 \u00dczerine Apt ile Java Kurulumu: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 18.04 \u00dczerine Apt ile Java Kurulumu: Kapsaml\u0131 Bir Rehber\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 18.04 \u00dczerine Apt ile Java Kurulumu: Kapsaml\u0131 Bir Rehber Java, d\u00fcnya genelinde en yayg\u0131n kullan\u0131lan programlama dillerinden ve platformla\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-25T18:40:55+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 18.04 \u00dczerine Apt ile Java Kurulumu: Kapsaml\u0131 Bir Rehber\",\"datePublished\":\"2025-12-25T18:40:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/\"},\"wordCount\":3897,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/\",\"name\":\"Ubuntu 18.04 \u00dczerine Apt ile Java Kurulumu: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-25T18:40:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 18.04 \u00dczerine Apt ile Java Kurulumu: Kapsaml\u0131 Bir Rehber\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ubuntu 18.04 \u00dczerine Apt ile Java Kurulumu: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 18.04 \u00dczerine Apt ile Java Kurulumu: Kapsaml\u0131 Bir Rehber","og_description":"Ubuntu 18.04 \u00dczerine Apt ile Java Kurulumu: Kapsaml\u0131 Bir Rehber Java, d\u00fcnya genelinde en yayg\u0131n kullan\u0131lan programlama dillerinden ve platformla","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-25T18:40:55+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"22 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 18.04 \u00dczerine Apt ile Java Kurulumu: Kapsaml\u0131 Bir Rehber","datePublished":"2025-12-25T18:40:55+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/"},"wordCount":3897,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/","name":"Ubuntu 18.04 \u00dczerine Apt ile Java Kurulumu: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-25T18:40:55+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-apt-ile-java-kurulumu-kapsamli-bir-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 18.04 \u00dczerine Apt ile Java Kurulumu: Kapsaml\u0131 Bir Rehber"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36989","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=36989"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36989\/revisions"}],"predecessor-version":[{"id":36990,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36989\/revisions\/36990"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=36989"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=36989"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=36989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}