كيف يمكنني تغيير قيمة Java_HOME
في Ubuntu للإشارة إلى Java Oracle؟
هل يجب أن يشير إلى Java-6-Sun
أو Java-6-Sun-1.6.0.24
؟
أضع الخط:
export Java_HOME=/usr/lib/jvm/Java-7-Oracle
في ملف ~/.bashrc
الخاص بي.
يجب أن يكون /usr/lib/jvm/Java7-Oracle
رابطًا رمزيًا يشير إلى /usr/lib/jvm/Java-7-Oracle-[version number here]
.
السبب في كونه رابطًا رمزيًا هو أنه في حالة وجود إصدار جديد من JVM ، فلن تحتاج إلى تحديث ملف .bashrc
الخاص بك ، بل يجب أن يشير تلقائيًا إلى الإصدار الجديد.
إذا كنت ترغب في تعيين متغيرات بيئة Java_HOME على مستوى العالم وعلى مستوى النظام ، فيجب أن يتم استخدام "/etc/environment file".
إذا كنت تريد تغييره على مستوى العالم وعلى مستوى النظام ؛
في
/etc/environment
أضف هذا الخط:
Java_HOME=/usr/lib/jvm/Java-7-Oracle
لتعيين Java SE Development Kit على Oracle كجهاز افتراضي Java فقط قم بتنزيل أحدث Java SE Development Kit من هنا ثم قم بإنشاء دليل في مكان ما تريده في نظام الملفات الخاص بك على سبيل المثال ، /usr/Java
الآن استخراج الملفات التي قمت بتنزيلها للتو في هذا الدليل :
$ Sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/Java
الآن لتعيين متغير البيئة Java_HOME
الخاص بك:
$ Java_HOME=/usr/Java/jdk1.8.0_05/
$ Sudo update-alternatives --install /usr/bin/Java java ${Java_HOME%*/}/bin/Java 20000
$ Sudo update-alternatives --install /usr/bin/javac javac ${Java_HOME%*/}/bin/javac 20000
تأكد من تعيين Java Oracle على أنها Java الافتراضية عن طريق:
$ update-alternatives --config Java
تحصل على شيء مثل هذا:
There are 2 choices for the alternative Java (providing /usr/bin/Java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /opt/Java/jdk1.8.0_05/bin/Java 20000 auto mode
1 /opt/Java/jdk1.8.0_05/bin/Java 20000 manual mode
2 /usr/lib/jvm/Java-6-openjdk-i386/jre/bin/Java 1061 manual mode
Press enter to keep the current choice[*], or type selection number:
انتبه إلى العلامة النجمية قبل الأرقام الموجودة على اليسار وإذا لم يتم تعيين الرقم الصحيح ، فاختر الرقم الصحيح بكتابة الرقم والضغط على إدخال. الآن اختبار جافا الخاص بك:
$ Java -version
إذا حصلت على شيء مثل التالي ، فأنت على ما يرام:
Java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)
لاحظ أيضًا أنك قد تحتاج إلى إذن الجذر أو تكون في مجموعة sudoers لتتمكن من القيام بذلك. لقد اختبرت هذا الحل على كلٍ من أوبونتو 12.04 و Debian wheezy وهو يعمل في كلاهما.
إذا كنت تريد توفير متغير البيئة هذا لجميع المستخدمين وعند بدء تشغيل النظام ، يمكنك إضافة ما يلي إلى /etc/profile.d/Java.sh (قم بإنشائه إذا لزم الأمر):
export JDK_HOME=/usr/lib/jvm/Java-7-Oracle
export Java_HOME=/usr/lib/jvm/Java-7-Oracle
ثم في تشغيل المحطة:
Sudo chmod +x /etc/profile.d/Java.sh
source /etc/profile.d/Java.sh
سؤالي الثاني هو - هل يجب أن يشير إلى Java-6-Sun أو Java-6-Sun-1.6.0.24؟
يجب أن يشير دائمًا إلى Java-7-Oracle
لأن ذلك يرتبط بالآخر المثبت (بافتراض أنك قمت بتثبيت Java من مستودعات Ubuntu والآن من التنزيل المتاح في Oracle.com).
جافا 6
export Java_HOME=/usr/lib/jvm/Java-1.6.0-openjdk-AMD64
أو جافا 7
export Java_HOME=/usr/lib/jvm/Java-1.7.0-openjdk-AMD64
إذا كنت تقوم بأي نوع من التطوير ، فأنت بحاجة إلى الإشارة إلى JDK (Java Development Kit). خلاف ذلك ، يمكنك الإشارة إلى JRE (Java Runtime Environment).
يحتوي JDK على كل ما لدى JRE والمزيد. إذا كنت تقوم فقط بتنفيذ برامج Java ، فيمكنك الإشارة إلى JRE أو JDK.
يجب عليك ضبط Java_HOME
بناءً على Java الحالي الذي تستخدمه. readlink
سوف يطبع قيمة رابط رمزي لجافا الحالية و sed
سوف يعدلها إلى دليل JRE:
export Java_HOME=$(readlink -f /usr/bin/Java | sed "s:bin/Java::")
إذا كنت ترغب في إعداد Java_HOME إلى JDK ، فيجب عليك رفع مجلد واحد أكثر:
export Java_HOME=$(readlink -f /usr/bin/Java | sed "s:jre/bin/Java::")
إذا كنت تريد استخدام إصدار معين من Java عند تثبيت JDKs متعددة ، فقد لا يعمل مجرد إعداد Java_HOME.
تحتاج إلى استخدام Sudo update-alternatives --config Java
لتعيين Java الافتراضي.
راجع https://askubuntu.com/questions/121654/how-to-set-default-Java-version .
انظر هذا ؛ يركض
Sudo update-Java-alternatives --list
لسرد كافة عمليات تثبيت Java على جهاز بالاسم والدليل ، ثم تشغيلها
Sudo update-Java-alternatives --set [JDK/JRE name e.g. Java-8-Oracle]
لاختيار أي JRE/JDK للاستخدام.
إذا كنت تريد استخدام JDKs/JREs مختلفة لكل مهمة Java ، فيمكنك تشغيل بدائل تحديث لتكوين Java قابل للتنفيذ في وقت واحد ؛ يمكنك الجري
Sudo update-alternatives --config Java[Tab]
للاطلاع على أوامر Java التي يمكن تهيئتها (Java ، javac ، javah ، javaws ، إلخ). وثم
Sudo update-alternatives --config [javac|Java|javadoc|etc.]
سيتم ربط مهمة/أمر Java إلى JDK/JRE معين.
قد تحتاج أيضًا إلى تعيين Java_HOME لبعض التطبيقات: من هذه الإجابة يمكنك استخدامها
export Java_HOME=$(readlink -f /usr/bin/Java | sed "s:bin/Java::")
ل JREs ، أو
export Java_HOME=$(readlink -f /usr/bin/Java | sed "s:jre/bin/Java::")
ل JDKs.