نصب و پیکره بندی JDK در Ubuntu

همونطور که میدونید برای نصب اندروید استودیو اولین کار داشتن JDK روی سیستم موردنظر هست.خب برای اینکار باید به سایت اوراکل مراجعه کنید ( متاسفانه تحریمه ) و JDK مناسب رو با توجه به نسخه ی اوبونتویی که نصب کردید دانلود کنید- برای اینکار بعد از پیچوندن تحریم به صفحه ی نسخه ای از JDK که قصد دانلود دارید وارد بشید که بسته به انتخاب میتونه JDK 1.8 باشه یا JDK1.7 باشه ( اینجا من تصمیم گرفتم از نسخه 1.8 استفاده کنم ) در صفحه مورد نظر Accept License Agreement رو علامت بزنید و توجه داشته باشید که ما برای توزیع هایی از گنو/لینوکس مثل اوبونتو به نسخه آرشیو شده با پسوند tar.gz نیاز داریم.

 

خب بعد از اینکه دانلود انجام شد باید فایل رو اکسترکت کنیم و در مسیر مناسب قرار بدیم پس چون فایلی که من دانلود کردم در ‌Downloads ذخیره شده – به صورت زیر عمل میکنم پس با Ctrl+Alt+T ترمینال رو باز کنید و دستورات رو وارد کنید.

 cd Downloads/     # Downloads برای وارد شدن به فولدر
ls  # مشاهده ی لیست فایلها در مسیر جاری
tar -xfzv jdk-8u31-linux.i586.tar.gz  #  اکسترکت آرشیو 32bit
tar -xfzv jdk-8u31-linux-x64.tar.gz  #   اکسترکت آرشیو  64bit

 

خب تا اینجا باید اکسترکت با موفقیت صورت گرفته باشه که میتونید با دستور ls این موضوع رو چک کنید – مرحله ی بعدی ساخت یه دایرکتوری در مسیر usr/lib/jvm و انتقال فولدر اکسترکت شده به اونجاست پس دوباره میریم سراغ ترمینال و تایپ می کنیم:

 sudo mkdir -p /usr/lib/jvm #  ساخت دایرکتوری موردنظر با مجوز روت
 sudo mv ./jdk1.8.0_31 /usr/lib/jvm/  #  انتقال فولدر

 

عبارت sudo به شما اجازه میده که یه دستور رو به عنوان سوپریوزر اجرا کنید و در اینجا ممکنه که از شما درخواست بشه که پسورد خودتون رو وارد کنید.

سوئیچ p- در دستور اول برای ساخت پوشه های تودرتو لازم است و /. در دستور دوم نشانگر مسیری است که در آن قرار داریم.

بعد از پشت سر گذاشتن مراحل قبل حالا باید توجه داشت که ممکنه شرایطی وجود داشته باشه که بر روی سیستم عامل ما به فرض چندین JDK نصب شده باشد در این شرایط برای اینکه مشخص کنیم کدام یک از JDK های نصب شده باید دارای اولویت بالاتری باشه و به صورت پیشفرض توسط سیستم عامل مورد استفاده قرار بگیره باید به شیوه ای این موضوع رو مشخص کنیم.

خب دستوری که باید در ترمینال تایپ کرد به این صورت زیر هست:

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_121/bin/java" 1
  • دقت کنید که باید ورژن jdk خود را تغییر بدید.

توضیح : با استفاده از دستور بالا که فرمت اون به صورت update-alternatives –install link name path priority هستش ما یک گروه alternatives برای سیستم تعریف می کنیم در صورتی که گروه تعریف شده در حال حاضر در لیست رکورد alternative های سیستم موجود باشه اطلاعات در مورد alternative جدید به قبلی ها در این گروه اضافه خواهد شد در غیر اینصورت یک گروه alternative جدید که حالت اون به صورت پیشفرض روی اتوماتیک تنظیم شده به سیستم اضافه خواهد شد در این حالت یعنی اتوماتیک سیستم بر اساس اولویت های موجود تصمیم میگیره که از چه فایل یا کتابخانه یا برنامه یا … برای عملکرد مورد نیاز که به فرض میتونه ادیت یک فایل تکست باشه استفاده کنه- اینجا link در واقع یک نام کلی یا لینکی برای مستر لینک هست که در alternatives directory به link group مربوطه اشاره میکنه که در بردارنده ی انتخاب هایی است که دارای عملکرد مشابه یا یکسانی هستند که مورد نظر ماست مثلاْ اجرای جاوا یا همون ادیت تکست , Master link تعیین میکنه که پیکره بندی و اولویت بندی برای slave links یا سایر لینک های موجود در گروه باید به چه صورتی باشه یعنی پیشفرض سیستم برای اجرای یک عمل کدام یک از گزینه های موجود (لینک فایل ها یا برنامه ها یا… ) باید باشد – name نامی است که برای مفهوم symbolic links در دایرکتوری etc/alternatives/ در نظر می گیریم که با اون گروه جدید الترنیتیو ها شناسایی میشه و path مسیر الترنیتیوی است که برای Master link معرفی می شود و در واقع مسیر انتخاب پیشفرض برای فایلهایی است که عملکرد مورد نظر ما قراره با اونها صورت بپذیره که با بعدها با دستور update-alternatives –config که جلوتر بهش میرسیم قابل تغییره و priority هم برای مشخص کردن الویت این گزینه به کار میره. خیلی ساده کاری که با دستور بالا انجام میدیم اینه که یک الترنیتیو جدید برای JDK تازه نصب شده به گروهی از الترنیتیوها برای اجرای جاوا اضافه می کنیم و مسیر JDK رو هم معین و الویت اون رو به بالاترین مورد ممکن تغییر میدیم. برای اینکه موضوع روشن تر بشه با تایپ دستورهای زیر در ترمینال میتونید لیستی از لینک های موجود در مسیر etc/alternatives/ رو ملاحظه بفرمایید.

 ls -l /etc/alternatives
$ ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 فوریه 12 22:35 /usr/bin/java -> /etc/alternatives/java
$  ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 34 فوریه 12 22:35 /etc/alternatives/java -> /usr/lib/jvm/jdk1.8.0_121/bin/java

خب برمیگردیم سر اصل موضوع – تا اینجا ما با دستور طولانی توضیح داده شده یه alternative جدید اضافه کردیم و تازه باید مشخص کنیم که اگر چند تا مثلاْ JDK رو سیستم نصب شده ما ترجیح میدیدم که از کدوم استفاده کنیم برای اینکار میریم سراغ ترمینال و مینویسیم:

    sudo update-alternatives --config java

بعد از تایپ دستور بالا اگر تنها JDK که روی سیستم وجود داره همین JDK باشه که تازه نصب شده بعد از زدن Enter با چنین پیغامی مواجه خواهیم شد :

There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/jdk1.8.0_31/bin/java
Nothing to configure.

که معنی اون اینه که چیزی برای کانفیگ وجود نداره ولی اگر غیر از این باشه مثلاْ ممکنه چیزی شبیه به موارد زیرو در ترمینال مشاهده کنیم:

  There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
* 2            /usr/lib/jvm/jdk1.7.0/bin/java                   1         manual mode
  3            /usr/lib/jvm/jdk1.8.0/bin/java                   1         manual mode

Press enter to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/lib/jvm/jdk1.8.0/bin/java to provide /usr/bin/java (java) in manual mode

که به ما میگه برای نگه داشتن انتخاب فعلی که با علامت * مشخص شده enter رو فشار بدید یا با تایپ شماره ای که در کنار انتخاب مورد نظرتون قرار داره اون رو تغییر بدید. که مثلاْ اینجا ما باید عدد 3 رو تایپ کنیم و enter رو فشار بدیم خب حالا اگر همه چیز به خوبی پیش رفته باشه برای اینکه متوجه بشیم همه چیز به درستی تنظیم شده میتونیم با وارد کردن دستور زیر در محیط ترمینال از این موضوع اطلاع پیدا کنیم:

  update-alternatives --display java

این دستور اطلاعاتی در مورد link group مربوطه به شما نشون میده که شامل حالت گروه که میتونه به صورت اتوماتیک یا دستی تنظیم شده باشه , اینکه در حال حاضر مستر لینک به کدام alternative اشاره میکنه , لیستی از سایر alternative هایی که در گروه موجود هستند و اینکه بالاترین اولویت در حال حاضرمربوط به کدام alternative هست را نشان خواهد داد اگر همه چیز درست باشه نتیجه ای مشابه پیام زیر که در ترمینال من نمایش داده شده برای شما هم نشون داده میشه.

java - auto mode
  link best version is /usr/lib/jvm/jdk1.8.0_121/bin/java
  link currently points to /usr/lib/jvm/jdk1.8.0_121/bin/java
  link java is /usr/bin/java
/usr/lib/jvm/jdk1.8.0_121/bin/java - priority 1

دستور طولانی قبلی رو برای javac هم تکرار می کنیم تقریباْ یکی هستند با یه فرق جزیی ولی مهم:

 sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_121/bin/javac" 1

حالا برای محکم کاری باید Environment-variable ها رو هم ست کنیم پس در ترمینال باید تایپ کنیم:

  sudo gedit ~/.bashrc
 #PATH and JAVA HOME directory setup
    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_121
    export PATH=${PATH}:$JAVA_HOME/bin
  • علامت # خط مورد نظر رو کامنت میکنه و به حساب نخواهد آمد.

با دستور اول متغیر JAVA_HOME$ رو تعریف کردیم که حاوی مسیری است که به محل قرارگیری فولدر JDK اشاره میکنه تا به راحتی برای برنامه هایی مانند اندروید استودیو قابل شناسایی باشه و با دستور دوم هم به متغیر PATH$ مسیر پوشه usr/lib/jvm/jdk1.8.0_121/bin رو اضافه میکنه تا در هر مسیری که قرار داشته باشیم به راحتی بتونیم با دستورات جاوا کار کنیم.

 java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

و برای متغیر PATH$ هم از دستور زیر استفاده میکنیم.

echo $PATH

که مسیر ذکر شده در بالا باید به اون اضافه شده باشه.

فقط در صورتی که قصد داشته باشید jdk رو با استفاده از مخازن PPA نصب کنید باید از دستورات زیر استفاده کنید که البته من تست نکردم.

   sudo add-apt-repository ppa:webupd8team/java

   sudo apt-get update

   sudo apt-get install oracle-java7-installer

   sudo apt-get install oracle-java7-set-default

 

 

 

0 پاسخ

دیدگاه خود را ثبت کنید

Want to join the discussion?
Feel free to contribute!

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *