آموزش نصب جاوا با Apt روی اوبونتو (JRE و JDK)

مقدمه
جاوا و JVM (ماشین مجازی جاوا) برای بسیاری از نرمافزارها لازم هستند؛ از جمله Tomcat، Jetty، Glassfish، Cassandra و Jenkins.
در این راهنما، نسخههای مختلف محیط اجرایی جاوا (JRE) و کیت توسعه جاوا (JDK) را با apt نصب میکنید. هم OpenJDK را نصب میکنید و هم JDK رسمی Oracle را. سپس نسخهای را که میخواهید در پروژههایتان استفاده کنید انتخاب میکنید. وقتی کارتان تمام شود، میتوانید از JDK برای توسعه نرمافزار و از Java Runtime برای اجرای اپلیکیشنها استفاده کنید.
اپلیکیشنهای فرانتاند خود را با پارمین کلود مستقیماً از گیتهاب مستقر کنید و مقیاسدهی اپلیکیشن را به پارمین کلود بسپارید.
نکات کلیدی
- اوبونتو به شما اجازه میدهد جاوا را بهسادگی با apt نصب کنید؛ OpenJDK برای هر دو سناریوی استفاده JRE و JDK مستقیماً از مخازن رسمی در دسترس است.
- روش پیشفرض نصب جاوا از OpenJDK استفاده میکند، در حالی که Oracle JDK به دلیل محدودیتهای مجوز Oracle نیازمند دانلود دستی و یک نصبکننده شخص ثالث است.
- نصبهای جاوا را میتوان با دستورات استانداردی مانند
java -version،javac -versionوupdate-alternativesتأیید و مدیریت کرد. - چندین نسخه جاوا میتوانند همزمان روی یک سیستم وجود داشته باشند و
update-alternativesبه شما اجازه میدهد نسخه پیشفرض را انتخاب کنید. - بسیاری از اپلیکیشنهای مبتنی بر جاوا به متغیر محیطی JAVA_HOME متکی هستند که باید به دایرکتوری نصب جاوا اشاره کند، نه به فایل اجرایی.
- مشکلات رایج راهاندازی جاوا در اوبونتو — مانند نبودن دستورات یا تنظیمنشدن متغیرهای محیطی — معمولاً با تنظیم PATH، تعیین JAVA_HOME یا نصب مجدد پکیجهای لازم با apt قابل رفع هستند.
پیشنیازها
برای دنبال کردن این آموزش به موارد زیر نیاز دارید:
- یک سرور اوبونتو که طبق راهنمای راهاندازی اولیه سرور اوبونتو آماده شده باشد؛ شامل یک کاربر غیر root با دسترسی sudo و یک فایروال.
مرحله ۱ — نصب جاوا
یک نصب جاوا شامل دو جزء اصلی است. JDK ابزارهای نرمافزاری ضروری برای توسعه با جاوا — مانند کامپایلر و دیباگر — را فراهم میکند. JRE برای اجرای واقعی برنامههای جاوا استفاده میشود. علاوه بر این، دو گزینه اصلی برای نصب جاوا وجود دارد. OpenJDK پیادهسازی متنباز جاواست و همراه اوبونتو عرضه میشود. Oracle JDK نسخه اصلی جاواست و بهطور کامل توسط Oracle (توسعهدهندگان جاوا) نگهداری میشود.
هر دو نسخه بهطور رسمی توسط Oracle شناخته میشوند و هر دو توسط Oracle توسعه داده میشوند؛ اما OpenJDK به دلیل متنباز بودن، مشارکتهای جامعه را هم در بر دارد. با این حال، از جاوا 11 به بعد، این دو گزینه طبق اعلام Oracle از نظر عملکردی یکسان هستند. انتخاب بین این دو به انتخاب مجوز مناسب برای شرایط شما ختم میشود. علاوه بر این، در OpenJDK این امکان وجود دارد که JRE بهصورت جداگانه نصب شود، در حالی که Oracle JDK همراه با JRE خودش بستهبندی شده است.
روش اول — نصب JRE/JDK پیشفرض
یکی از گزینهها برای نصب جاوا، استفاده از نسخهای است که همراه اوبونتو عرضه میشود. نسخه پیشفرض به نسخه اوبونتوی شما بستگی دارد؛ اوبونتو 24.04 بهصورت پیشفرض OpenJDK 21 و اوبونتو 22.04 نسخه OpenJDK 11 را ارائه میدهد که نسخهای متنباز از JRE و JDK است.
برای نصب نسخه OpenJDK از جاوا، ابتدا ایندکس پکیجهای apt را بهروز کنید:
sudo apt update
سپس بررسی کنید که آیا جاوا از قبل نصب شده است یا خیر:
java -version
اگر جاوا در حال حاضر نصب نباشد، خروجی زیر را دریافت میکنید:
خروجی:
Command 'java' not found, but can be installed with:
sudo apt install default-jre # version 2:1.21-8, or
sudo apt install openjdk-21-jre-headless # version 21.0.5+10-1ubuntu1
sudo apt install openjdk-17-jre-headless # version 17.0.12+7-1
sudo apt install openjdk-11-jre-headless # version 11.0.24+7-1
توجه: فهرست نسخههای موجود به نسخه اوبونتوی شما بستگی دارد و ممکن است متفاوت باشد.
دستور زیر را برای نصب JRE پیشفرض OpenJDK اجرا کنید:
sudo apt install default-jre
JRE به شما اجازه میدهد تقریباً همه نرمافزارهای جاوا را اجرا کنید.
نصب را با این دستور تأیید کنید:
java -version
خروجی مشابه زیر دریافت میکنید:
خروجی:
openjdk version "21.0.5" 2024-10-15
OpenJDK Runtime Environment (build 21.0.5+10-Ubuntu-1)
OpenJDK 64-Bit Server VM (build 21.0.5+10-Ubuntu-1, mixed mode, sharing)
توجه: شماره نسخه دقیق بسته به نسخه اوبونتوی شما ممکن است متفاوت باشد.
ممکن است علاوه بر JRE، به JDK هم نیاز داشته باشید تا بتوانید برخی نرمافزارهای خاص مبتنی بر جاوا را کامپایل و اجرا کنید. برای نصب JDK، دستور زیر را اجرا کنید که JRE را هم نصب خواهد کرد:
sudo apt install default-jdk
با بررسی نسخه javac (کامپایلر جاوا) از نصب JDK مطمئن شوید:
javac -version
خروجی زیر را میبینید:
خروجی:
javac 21.0.5
در بخش بعد، نحوه نصب JDK و JRE رسمی Oracle را یاد میگیرید.
روش دوم — نصب Oracle JDK 11
توافقنامه مجوز Oracle برای جاوا اجازه نصب خودکار از طریق مدیر پکیج را نمیدهد. برای نصب Oracle JDK (نسخه رسمی منتشرشده توسط Oracle)، باید یک حساب کاربری Oracle بسازید و JDK را بهصورت دستی دانلود کنید. سپس یک مخزن پکیج جدید برای نسخهای که میخواهید استفاده کنید اضافه میکنید. بعد میتوانید با کمک یک اسکریپت نصب شخص ثالث، آن را با apt نصب کنید. Oracle JDK همراه با JRE عرضه میشود؛ پس نیازی به نصب جداگانه آن ندارید.
نسخه Oracle JDK که باید دانلود کنید باید با نسخه اسکریپت نصبکننده مطابقت داشته باشد. برای فهمیدن اینکه به کدام نسخه نیاز دارید، صفحه oracle-java11-installer را ببینید.
بسته مربوط به نسخه اوبونتوی خود را پیدا کنید (مثلاً Jammy برای اوبونتو 22.04)، همانطور که در شکل زیر نشان داده شده است:
[تصویر: بسته نصبکننده برای اوبونتو]
در این تصویر، نسخه اسکریپت 11.0.13 است. در این حالت، به Oracle JDK 11.0.13 نیاز دارید. شماره نسخه شما ممکن است بسته به زمان نصب نرمافزار متفاوت باشد.
لازم نیست چیزی از این صفحه دانلود کنید؛ بهزودی اسکریپت نصب را از طریق apt دریافت میکنید.
سپس به صفحه Archive Downloads بروید و نسخهای را پیدا کنید که با نسخه موردنیازتان مطابقت دارد.
[تصویر: صفحه دانلود آرشیو جاوا در Oracle؛ جایی که میتوانید نسخههای جاوا غیر از آخرین نسخه را پیدا کنید]
از این فهرست، بسته فشرده .tar.gz با عنوان Linux x64 Compressed Archive را انتخاب کنید:
[تصویر: دانلود نسخه لینوکس]
صفحهای نمایش داده میشود که از شما میخواهد توافقنامه مجوز Oracle را بپذیرید. برای پذیرش توافقنامه، تیک مربوطه را فعال کنید و دکمه Download را فشار دهید. دانلود شما آغاز میشود. ممکن است پیش از شروع دانلود، یک بار دیگر لازم شود وارد حساب Oracle خود شوید.
پس از دانلود فایل، باید آن را به سرور خود منتقل کنید. روی ماشین محلی خود، فایل را به سرور آپلود کنید. در macOS، لینوکس یا ویندوز (با استفاده از Windows Subsystem for Linux)، از دستور scp برای انتقال فایل به دایرکتوری خانه کاربر sammy خود استفاده کنید. دستور زیر فرض میکند که فایل Oracle JDK را در پوشه Downloads ماشین محلی خود ذخیره کردهاید:
scp Downloads/jdk-11.0.13_linux-x64_bin.tar.gz sammy@your_server_ip:~
وقتی آپلود فایل کامل شد، به سرور خود برگردید و مخزن شخص ثالثی را اضافه کنید که به نصب جاوای Oracle کمک میکند.
ابتدا کلید امضای استفادهشده برای تأیید نرمافزاری که قصد نصبش را دارید، وارد (Import) کنید:
sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/oracle-jdk11-installer.gpg --keyserver keyserver.ubuntu.com --recv-keys EA8CACC073C3DB2A
این خروجی را میبینید:
خروجی:
gpg: keybox '/usr/share/keyrings/oracle-jdk11-installer.gpg' created
gpg: /tmp/trustdb.gpg: trustdb created
gpg: key EA8CACC073C3DB2A: public key "Launchpad PPA for Linux Uprising" imported
gpg: Total number processed: 1
gpg: imported: 1
سپس مخزن را به فهرست منابع پکیج خود اضافه کنید:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-jdk11-installer.gpg] https://ppa.launchpadcontent.net/linuxuprising/java/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/oracle-jdk11-installer.list > /dev/null
توجه: اگر از نسخه دیگری از اوبونتو استفاده میکنید، jammy را با نام رمز نسخه خودتان جایگزین کنید (مثلاً noble برای اوبونتو 24.04).
فهرست پکیجهای خود را بهروز کنید تا نرمافزار جدید برای نصب در دسترس قرار بگیرد:
sudo apt update
نصبکننده بهدنبال Oracle JDK دانلودشده در مسیر /var/cache/oracle-jdk11-installer-local میگردد. این دایرکتوری را بسازید و آرشیو Oracle JDK را به آنجا منتقل کنید:
sudo mkdir -p /var/cache/oracle-jdk11-installer-local/
sudo cp jdk-11.0.13_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/
در نهایت، پکیج را نصب کنید:
sudo apt install oracle-java11-installer-local
نصبکننده ابتدا از شما میخواهد توافقنامه مجوز Oracle را بپذیرید. توافقنامه را بپذیرید؛ سپس نصبکننده بسته جاوا را استخراج کرده و نصب میکند.
حالا نحوه انتخاب نسخه جاوایی که میخواهید استفاده کنید را میبینید.
مرحله ۲ — مدیریت جاوا
میتوانید چندین نصب جاوا روی یک سرور داشته باشید. با استفاده از دستور update-alternatives میتوانید پیکربندی کنید که کدام نسخه بهصورت پیشفرض در خط فرمان استفاده شود:
sudo update-alternatives --config java
خروجی در صورتی که هر دو نسخه جاوا را در این آموزش نصب کرده باشید، به این شکل خواهد بود:
خروجی:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 1111 auto mode
1 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 1111 manual mode
* 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 manual mode
Press <enter> to keep the current choice[*], or type selection number:
عدد مربوط به نسخه جاوایی که میخواهید بهعنوان پیشفرض استفاده شود را انتخاب کنید، یا برای حفظ تنظیمات فعلی ENTER را فشار دهید.
میتوانید این کار را برای سایر دستورات جاوا مانند کامپایلر (javac) هم انجام دهید:
sudo update-alternatives --config javac
سایر دستوراتی که این فرمان برای آنها قابل اجراست شامل — اما نه محدود به — keytool، javadoc و jarsigner است.
مرحله ۳ — تنظیم متغیر محیطی JAVA_HOME
بسیاری از برنامههایی که با جاوا نوشته شدهاند، از متغیر محیطی JAVA_HOME برای تشخیص محل نصب جاوا استفاده میکنند.
برای تنظیم این متغیر محیطی، ابتدا مشخص کنید جاوا کجا نصب شده است. از دستور update-alternatives استفاده کنید:
sudo update-alternatives --config java
این دستور هر نصب جاوا را همراه با مسیر نصب آن نشان میدهد:
خروجی:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 1111 auto mode
1 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 1111 manual mode
* 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 manual mode
Press <enter> to keep the current choice[*], or type selection number:
در این حالت، مسیرهای نصب به این شرح هستند:
- OpenJDK 21 در مسیر
/usr/lib/jvm/java-21-openjdk-amd64/bin/javaقرار دارد. - Oracle Java در مسیر
/usr/lib/jvm/java-11-oracle/bin/javaقرار دارد.
مسیر را از نصب موردترجیح خود کپی کنید. سپس فایل /etc/environment را با nano یا ویرایشگر متن دلخواه خود باز کنید:
sudo nano /etc/environment
در انتهای این فایل، خط زیر را اضافه کنید و حتماً مسیر را با مسیر کپیشده خودتان جایگزین کنید و بخش bin/ مسیر را شامل نکنید:
/etc/environment
JAVA_HOME="/usr/lib/jvm/java-21-openjdk-amd64"
ویرایش این فایل، مسیر JAVA_HOME را برای همه کاربران سیستم شما تنظیم میکند.
فایل را ذخیره کرده و از ویرایشگر خارج شوید.
حالا این فایل را برای اعمال تغییرات در نشست فعلی خود بارگذاری مجدد (Reload) کنید:
source /etc/environment
تنظیمبودن متغیر محیطی را تأیید کنید:
echo $JAVA_HOME
مسیری که همین الان تنظیم کردید را میبینید:
خروجی:
/usr/lib/jvm/java-21-openjdk-amd64
سایر کاربران برای اعمال این تنظیم، باید دستور source /etc/environment را اجرا کنند یا از سیستم خارج شده و دوباره وارد شوند.
خطاهای رایج و عیبیابی
خطای «Java not found» یا «command not found»
اگر با خطای Java not found یا command not found روبرو شدید، یعنی سیستم نمیتواند فایل اجرایی جاوا را پیدا کند. این مشکل با تنظیم متغیر محیطی PATH بهگونهای که دایرکتوری نصب جاوا را در بر بگیرد، قابل رفع است:
export PATH=$PATH:/usr/lib/jvm/java-21-openjdk-amd64/bin
خطای «JAVA_HOME is not set»
اگر خطای JAVA_HOME is not set را دریافت کردید، نشان میدهد که متغیر محیطی JAVA_HOME پیکربندی نشده است. این مشکل با تنظیم متغیر محیطی JAVA_HOME به دایرکتوری نصب جاوا قابل رفع است:
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
خطای «Cannot locate the installed JDK or JRE version»
اگر با خطای Cannot locate the installed JDK or JRE version روبرو شدید، یعنی سیستم نمیتواند کیت توسعه جاوا (JDK) یا محیط اجرایی جاوا (JRE) نصبشده را پیدا کند. این مشکل با بررسی مسیر نصب و تنظیم متغیر محیطی PATH بهگونهای که دایرکتوری درست را در بر بگیرد، قابل رفع است:
export PATH=$PATH:/usr/lib/jvm/java-21-openjdk-amd64/bin
خطای «Permission denied» هنگام نصب
اگر هنگام نصب جاوا با خطای Permission denied روبرو شدید، یعنی کاربر مجوزهای لازم برای نصب جاوا را ندارد. این مشکل با اجرای دستور نصب با sudo قابل رفع است:
sudo apt install openjdk-11-jdk
سوالات متداول
۱. چطور بررسی کنم که جاوا روی اوبونتو نصب شده است یا خیر؟
میتوانید با اجرای دستور زیر در ترمینال خود، بررسی کنید که آیا جاوا روی سیستم اوبونتوی شما نصب شده است یا نه:
java -version
اگر جاوا نصب باشد، نسخه جاوای نصبشده فعلی را میبینید. اگر جاوا نصب نباشد، یک پیام خطا خواهید دید.
۲. تفاوت JRE و JDK چیست؟
محیط اجرایی جاوا (JRE) یک بسته نرمافزاری است که محیط اجرایی لازم را برای اجرای برنامههای جاوا فراهم میکند. کیت توسعه جاوا (JDK) یک بسته نرمافزاری است که علاوه بر JRE، ابزارهای توسعه مانند کامپایلر و دیباگر را هم در بر میگیرد.
| ویژگی | JRE | JDK |
|---|---|---|
| محیط اجرایی (Runtime) | بله | بله |
| ابزارهای توسعه | خیر | بله |
| کامپایلر | خیر | بله |
| دیباگر | خیر | بله |
۳. چطور یک نسخه خاص از جاوا را روی اوبونتو نصب کنم؟
میتوانید با استفاده از دستور apt، نسخه خاصی از جاوا را روی سیستم اوبونتوی خود نصب کنید. مثلاً برای نصب جاوا 11، میتوانید دستور زیر را اجرا کنید:
sudo apt install openjdk-11-jdk
۴. چطور بین چند نسخه جاوا جابهجا شوم؟
اگر چند نسخه از جاوا روی سیستم خود نصب دارید، میتوانید از دستور update-alternatives برای جابهجایی بین آنها استفاده کنید. مثلاً برای سوئیچ به جاوا 11، میتوانید دستور زیر را اجرا کنید:
sudo update-alternatives --config java
۵. چطور جاوا را از اوبونتو حذف کنم؟
میتوانید با اجرای دستور زیر در ترمینال خود، جاوا را از سیستم اوبونتویتان حذف کنید:
sudo apt remove openjdk-11-jdk
۶. JAVA_HOME چیست و چطور آن را تنظیم کنم؟
JAVA_HOME یک متغیر محیطی است که به دایرکتوری نصب جاوا روی سیستم شما اشاره میکند. میتوانید متغیر محیطی JAVA_HOME را با اجرای دستور زیر در ترمینال خود تنظیم کنید:
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
جمعبندی
در این آموزش، با موفقیت نسخههای متعددی از جاوا را روی سیستم اوبونتوی خود نصب و مدیریت کردید. برای اکثر کاربران، OpenJDK سازگاری کامل با جاوا و بهروزرسانیهای امنیتی بلندمدت را بدون پیچیدگی مجوزدهی دستی یا مخازن شخص ثالث فراهم میکند. این راهاندازی به شما امکان میدهد طیف گستردهای از اپلیکیشنهای مبتنی بر جاوا — مانند Tomcat، Jetty، Glassfish، Cassandra یا Jenkins — را نصب و اجرا کنید.




