learn

نصب Java در Debian؛ انتخاب JDK سازگار و جایگزینی Debian 11 قدیمی

تفاوت JRE و JDK، نصب OpenJDK از مخزن Debian، کنترل java و javac و مدیریت چند نسخه بدون تغییر ناخواسته runtime سرویس‌ها.

برای نصب Java در Debian، ابتدا نسخه موردنیاز برنامه را مشخص کنید؛ جدیدترین JDK الزاماً با همه نرم‌افزارها سازگار نیست. Debian 11 از LTS رسمی خارج شده و برای نصب تازه مناسب نیست. نمونه زیر برای Debian 13 است که بسته default-jdk آن به OpenJDK 21 وابسته است؛ این عدد را به انتشارهای دیگر Debian تعمیم ندهید.

JDK یا فقط محیط اجرا؟

JRE برای اجرای برنامه و JDK برای توسعه و ابزارهایی مانند javac است. سرور بدون محیط گرافیکی معمولاً به بسته headless نیاز دارد. اگر محصول شما نسخه مشخصی را تأیید کرده، همان ترکیب پشتیبانی‌شده را انتخاب کنید و شرایط مجوز توزیع انتخابی را بخوانید.

نصب از مخزن همان Debian

sudo apt update
sudo apt install default-jdk-headless
java -version
javac -version

مخزن یک Debian دیگر را برای گرفتن JDK جدید به سیستم اضافه نکنید. اگر بسته نصب شد ولی فرمان پیدا نمی‌شود، PATH و حساب اجرا را بررسی کنید. ابزارهای بسته رسمی را با باینری دانلودشده در /usr/local بی‌برنامه ترکیب نکنید.

چند نسخه و JAVA_HOME

update-alternatives --display java
readlink -f /usr/bin/java

برای انتخاب تعاملی می‌توان از sudo update-alternatives –config java استفاده کرد؛ این تغییر ممکن است برنامه‌های دیگر را هم تحت تأثیر قرار دهد. javac نیز گروه alternatives جدا دارد. JAVA_HOME باید ریشه JDK باشد، نه فایل bin/java. برای سرویس، مسیر و متغیر را صریح تعیین کنید؛ فایل profile کاربر لزوماً توسط systemd خوانده نمی‌شود.

یک آزمون کوچک کامپایل

در پوشه آزمایشی تازه، فایل Hello.java را بسازید:

public class Hello {
    public static void main(String[] args) {
        System.out.println("Java is ready");
    }
}
javac Hello.java
java Hello

موفقیت این نمونه فقط آماده‌بودن کامپایلر و runtime را نشان می‌دهد؛ سازگاری اپلیکیشن واقعی باید با آزمون‌های خودش تأیید شود.

عیب‌یابی و انتقال برنامه قدیمی

UnsupportedClassVersionError معمولاً نشان می‌دهد فایل با Java جدیدتر از runtime ساخته شده است. نسخه build و اجرا را هماهنگ کنید، نه اینکه فایل class را ویرایش کنید. برای انتقال از Debian 11، برنامه، تنظیمات، گواهی‌های موردنیاز و سرویس راه‌انداز را روی مقصد آزمایش کنید؛ تغییر JDK می‌تواند رفتار TLS و کتابخانه‌ها را نیز تغییر دهد. رمز یا truststore حساس را وارد مخزن عمومی نکنید.

مطالعه مرتبط

منابع و مستندات

بازبینی محتوا و منابع: ۲۶ مهر ۱۴۰۵. دستورهای نمونه برای محیط مشخص‌شده‌اند؛ پیش از استفاده روی سرویس عملیاتی، سازگاری محیط و نسخه پشتیبان را بررسی کنید.

مطالب مرتبط

ارسال نظر

فهرست مطالب