میلاد فشی
کارشناس فناوری اطلاعات

معرفی جاوا و تاریخچه آن و آموزش نصب اوراکل جاوا و OpenJDK لینوکس

زبان برنامه نویسی جاوا نخستین بار توسط آقای James Gosling (جیمز گاسلینگ) در شرکت Sun Microsystems طراحی گردید.James Arthur Gosling متولد ۱۹۵۵ میلادی در کشور کانادا است.او یک دانشمند علوم کامپیوتر است رهبر تیم طراحی زبان جاوا است و به عنوان پدر جاوا شناخته میشود.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

در سال ۱۹۹۰ سان میکروسیستمز در حال توسعه نرم‌افزاری برای استفاده در تلویزیون های تعاملی ( interactive television) بود که مسئولیت تیم آن را جیمز کاسلینگ بر عهده گرفت.این پروژه برای آن زمان و برای digital cable television ها بسیار پیشرفته بود.در سال ۱۹۹۱ تیم تصمیم گرفت که اسم پروژه رو OAK (بلوط)بنامند.چون یه درخت بلوط در بیرون دفتر گاسلینگ سبز شده بود.

در دوره آموزش جاوا ( آموزش برنامه نویسی جاوا ) این موارد بصورت رایگان آموزش داده شده است

این تیم اسم پروژه رو از بلوط به Green (سبز) تغییر داد و در نهایت در سال ۱۹۹۲ تیم پروژه گرین زبان جدیدی را معرفی کرد که با ابزارهای مختلف خانگی و لمسی کار می‌کرد و نام آن را JAVA نهاد و نماد آن را نیز یک فنجان قهوه گذاشتن!چون West Java نام استانی در کشور اندونزی ـ یکی از بزرگترین کشورهای تولید کننده قهوه در جهان ـ است که در آن قهوه و چای بسیاری کاشت میشود.

در سال ۱۹۹۳ وب جهانی توسعه یافت و زبان جدید با معرفی اپلت که قابلیت‌های زیادی به کامپیوترهای متصل به وب می‌افزود مشهور شد. در سال ۱۹۹۵ زبان OAK به JAVA تغیر نام پیدا کرد و توسط مایکروسافت و نت اسکیپ پشتیبانی شد.

در سال ۱۹۹۶ دیگر Java زبانی به صورت همه گیر چند منظوره شناخته شده بود. در سال ۲۰۰۷ زبان‌هایی با استاندارد JVM مانند groovy ایجاد شد و در سال ۲۰۱۴ جاوا سعی کرد با معرفی نسخه ۸ برخی از قابلیتهای زبان‌های دیگر را به جاوا اضافه نماید. آقای جیمز آرتور گاسلینگ ۲۶ سال با شرکت Sun Microsystems همکاری کرد( از سال 1984 تا ۲۰۱۰).

در سال ۲۰۱۰ که شرکت Sun Microsystems توسط شرکت Oracle خریداری شد او دیگر به همکاری خود با Oracle ادامه نداد.و با شرکت گوگل همکاری کرد.همکاری او با گوگل باعث شد جاوا ستون و پایه اندروید برای توسعه Application های این سیستم عامل معروف و محبوب و قدرتمند Smart phone ها باشد.برای اطلاعات بیشتر به این لینک مراجعه نمایید.

معرفی جاوا (Java History)

JAVA یک زبان برنامه‌نویسیِ general-purpose و concurrent و class-based (Class Oriented) و شیءگرا (Object Oriented) است.

JAVA

جاوا از نظر Syntax به زبان++C شباهت دارد و از نظر ویژگی به زبان SmallTalk شباهت دارد اما دارای مدل شی‌گرایی ساده‌ای است و امکانات سطح پایین کمی دارد.جاوا یک زبان برنامه نویسی محبوب برای توسعه نرم افزارهای Cross Platform و برنامه های تحت وب است.ویژگی اصلی جاوا نوشتن کد کمتر است.که این به خاطر Object Oriented (مفهوم ارث بری باعث حذف کدهای تکرای میشه) و Cross Platform بودن جاوا است.به دلیل طراحی مستقل از سخت افزار جاوا و Portability بالایی که داره شعار آن "write once, run anywhere" است. برای توسعه برنامه به زبان جاوا به Software Development Kitمخصوص جاوا نیاز داریدکه اصطلاحاْ به آن JDK میگویند.JDK مخفف Java Development Kit است و در واقع شامل ابزارهای برنامه نویسی جهت توسعه یک برنامه جاوا است.

برنامه نویسان برای تولید برنامه‌هایشان به JDK نیاز دارند در صورتی که این برنامه برای اجرا بر روی کامپیوتر مقصد تنها به JRE نیازمند است.JRE مخفف Java Runtime Environment است که درواقع همان ماشین مجازی جاوا (Java Virtual Machine) میباشد.JDK فایل Source Code شما را که به زبان جاوا میباشد و به زبان انسان نیز نزدیک است کامپایل میکند و یک فایل کلاس جاوا ایجاد میکند که به آن Byte Code جاوا میگویند.بایت کد جاوا یک زبان میانی است.منظور از زبان میانی (Intermediate language) این است که این زبان چیزی مابین زبان جاوا و زبان ماشین است.

برای ماشین خواناتر است ولی برای انسان خوانا نیست.از JRE که در واقع همان ماشین مجازی جاوا(JVM) است برای اجرای فایل کلاس(Java ByteCode) استفاده می شود.در صورت نصب بودن JVM بر روی هر ماشین و Architecture ای صرف نظر از معماری و خصوصیات آن کامپیوتر برنامه‌های نوشته شده به جاوا بر روی آن ماشین و یا هرگونه وسیلهٔ الکترونیکی قابل اجرا می‌باشند. در واقع به زبان ساده شما برای برنامه نویسی به زبان جاوا به JDK احتیاج دارید تا بتونید برنامه های خود رو کامپایل کنید و به JRE احتیاج دارید تا بتونید برنامه های خود رو اجرا کنید.البته JDK شامل JRE هم میشه.یعنی با نصب JDK برای شما JRE هم نصب میشه.

OpenJDK یا Oracle JDK !

دو پیاده سازی متفاوت از JDK جاوا موجود است.Open JDK نسخه متن باز (Open Source) زبان جاوا میباشد.و Oracle JDK هم نسخه Proprietary (مالکانه یا تجاری) جاوا میباشد که متن باز نیست.زمانی که جاوا تحت مالکیت Sun Microsystems بود به نسخه مالکانه آن Sun JDK یا Sun Java میگفتند.ولی امروزه با عنوان Oracle Java یا Oracle JDK شناخته میشه.از نظر تکنیکال و ساختاری و بنیادی نسخه متن باز با نسخه Proprietary هیچ تفاوتی نداره.

ولی نسخه تجاری یا همون Oracle JDK نسبت به Open JDK کمی ویژگی اضافه داره که تجاری هستند و هنوز نسخه متن باز اون ها منتشر نشده.ولی در کل هر دو JDK عملکرد بسیار مشابهی دارند و نسخه OpenJDK و متن باز از هر نظر کامل و بی عیب و نقص است.توصیه بنده و اغلب بزرگان دبیان و جامعه متن باز استفاده از نسخه OpenJDK است.اگر تصمیم دارید نسخه Oracle Java را نصب کنید و قلب Richard M. Stallman را به درد آورید شما مختارید و میتوانید به کمک این آموزش و با استفاده فایل تجاری موجود در پیوست همین آموزش OracleJDK11 را نصب کنید.

نصب OpenJDK 8 بر روی دبیان ۹

برای نصب OpenJDK 8 به راحتی میتوانید با اجرای دستور زیر آن را بر روی دبیان خود نصب نمایید :

sudo apt install default-jdk

همون طور که میدونید توزیع دبیان یه توزیع Stable هستش و یکی از دلایل پایداری این توزیع استفاده نکردن از نسخه های جدید برنامه هاست.چون نسخه های جدید برنامه ها معمولا هنوز به بلوغ کاملی نرسیدند و ممکن است باگ ها و یا مشکلات کشف نشده ای داشته باشند. به همین دلیل توزیع دبیان برای نصب برنامه ها اغلب از لوح های فشرده ای است که در وبگاه debian.org موجوده استفاده میکنه و کمتر به اینترنت برای دریافت به روزترین application ها مراجعه میکنه.به همین دلیل دبیان ۹ با وجود اینکه OpenJDK 11 توسط جامعه متن باز توسعه داده شده ولی هنوز از OpenJDK 8 استفاده میکنه و برای نصب OpenJDK 8 شما بایستی DVD دبیان رو Mount کنید.برای این کار به آدرس فایل ISO دبیان بروید و دستور زیر رو با سطح دستری Root برای Mount شدن اون اجرا کنید:

mount debian-9.5.0-amd64-DVD-1.iso /medai/cdrom

بعد از اتمام فرایند نصب شما اگر در محیط ترمینال دبیان دستور javac یا java رو اجرا کنید میبیند که کامپایلر و ماشین مجازی جاوا برای ترمینال دبیان یه دستور شناخته شده است و دیگر با پیغام "bash: javac: command not found" مواجه نمیشوید.برای حذف OpenJDK از روی دبیان هم میتونید دستور زیر رو اجرا کنید :

sudo apt remove default-jdk

نصب Oracle JDK 11 بر روی دبیان Stretch

متاسفانه شرکت اوراکل با دیدن IP کشورمون ایران ٬ مجوز ورود به سایتش و دانلود JDK و ... رو به ما نمیده.به همین دلیل من نسخه ارواکل JDK 11 رو که در پیوست همین آموزش آپلود کردم و شما به راحتی میتونید اون رو از سایت tosinso.com دانلود کنید.بعد از دانلود اون پکیج deb. رو با دستور زیر بر روی توزیع دبیان (یا توزیع های مشتق شده از دبیان مثل اوبونتو یا مینت و ...) نصب نمایید :

dpkg -i jdk-11.0.2_linux-x64_bin.deb

سپس باید JDK 11 رو باید به عنوان JDK پیشفرض خودتون به دبیان معرفی کنید.برای این کار دستورات زیر را در ترمینال وارد نمایید :

update-alternatives --install /usr/bin/java java  /usr/lib/jvm/jdk-11.0.1/bin/java 2
update-alternatives --config java
انتخاب JDKپیشفرض

طبق شکل بالا سه نسخه جاوا دارید که باید گزینه 2 رو انتخاب کنید که نسخه ۱۱ هستش.البته باینتری های دیگری هم جاوا داره که باید اونا رو هم به عنوان پیشفرض به دبیان معرفی کنید.برای این کار نیز دستورات زیر را در ترمینال وارد نمایید :

update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk-11.0.1/bin/jar 2
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-11.0.1/bin/javac 2
update-alternatives --set jar /usr/lib/jvm/jdk-11.0.1/bin/jar
update-alternatives --set javac /usr/lib/jvm/jdk-11.0.1/bin/javac

البته توصیه من اینه که شما فقط یه ورژن از جاوا رو داشته باشید.با این کار هم نیاز به معرفی کردن Default نیست.با دستور حذف جاوای پیشفرض که در بالا معرفی شد ٬ نسخه پیشفرض رو حذف کنید و بعد اقدام به نصب نسخه دیگری نمایید.در حال حاظر بنده فقط از نسخه OpenJDK 8 بر روی دبیان ۹ استفاده میکنم و در زمان نگارش این متن جاوا ۸ هنوز توسط اوراکل پشتیبانی میشود.


میلاد فشی
میلاد فشی

کارشناس فناوری اطلاعات

میلاد فشی ، کارشناس نرم افزار ، کتاب Mobile Web Application With MoSync Framework را برای برنامه نویسی Cross-Platform برای موبایل ها یا تبلت ها به رشته تحریر درآوردم.به نرم افزارهای آزاد و متن باز (FOSS) علاقه دارم. با توزیع های محبوب گنو/لینوکس نیز کار کرده ام.به شبکه های کامپیوتری بیشتر از برنامه نویسی علاقه دارم و به همین دلیل بیشتر در حوزه شبکه های کامپیوتری مطالعه و تحقیق و پژوهش دارم و خودم رو یک دانشجوی مادام العمر میدونم...

نظرات