java - ويندوز - مشكلة الجافا في الماك




كيفية تثبيت جافا 8 على ماك (8)

أحد الخيارات التي بدأت بالفعل في تشغيل التطبيقات على جهاز الكمبيوتر المحلي الخاص بي هو استخدام Docker. يمكنك ببساطة تشغيل التطبيق الخاص بك داخل حاوية JDK الرسمية - مما يعني أنه لا داعي للقلق بشأن إعداد كل شيء على جهازك المحلي (أو القلق بشأن تشغيل إصدارات مختلفة متعددة من JDK لتطبيقات مختلفة ، إلخ)

على الرغم من أن هذا قد لا يساعدك في مشاكل التثبيت الحالية ، فهو حل يعني أنه يمكنك وضع جانب من حقل الألغام في القضايا المتعلقة بمحاولة الحصول على Java بشكل صحيح على جهاز Dev الخاص بك!

الفوائد هي:

  1. لا تحتاج إلى إعداد أي إصدار من Java على جهازك المحلي (ستقوم فقط بتشغيل Java داخل حاوية تسحبها من Docker Hub)
  2. من السهل جدًا التبديل إلى إصدارات مختلفة من Java ببساطة عن طريق تغيير العلامة الموجودة على الحاوية.
  3. يتم تثبيت تبعيات المشروع داخل الحاوية - لذلك إذا أخطأت التهيئة ، يمكنك ببساطة إعادة تحميل الحاوية والبدء مرة أخرى.

مثال بسيط للغاية:

قم بإنشاء Dockerfile :

FROM java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
  • هنا نقوم بتحديد حاوية Java التي تقوم بتشغيل الإصدار 8 من SDK ( java:8 - لاستخدام Java 7 ، يمكنك فقط تحديد: java:7 )
  • نقوم بتخطيط الدليل المحلي باستخدام الدليل: /usr/src/myapp داخل الحاوية

قم بإنشاء ملف docker-compose.yml :

version: "2"

services:
  java:
    build: .
    volumes:
      - .:/usr/src/myapp

الآن ، لنفترض أن لدينا ملف جافا هذا:

HelloWorld.java

public class HelloWorld {
    public static void main(String[] args) {        
        System.out.println("Hello, World");
    }
}

لذلك لدينا هيكل الملف التالي:

.
|_ Dockerfile
|_ docker-compose.yml
|_ HelloWorld.java

يمكنك القيام بأشياء Java مختلفة مثل:

تجميع:

docker-compose run --rm java javac HelloWorld.java 
  • تجدر الإشارة إلى أن HelloWorld.class يظهر في الدليل الحالي (وهذا هو السبب في أننا قمنا بتعيين الدليل الحالي إلى الموقع داخل الحاوية حيث يوجد رمزنا

يركض:

docker-compose run --rm java java HelloWorld 
  • ملحوظة: في المرة الأولى التي تقوم فيها بتشغيل هذا البرنامج ، سيؤدي ذلك إلى جلب الصورة وما إلى ذلك. سيستغرق ذلك بعض الوقت - لا يحدث إلا في المرة الأولى
  • docker-compose run - docker-compose run - يدير أمر من داخل الحاوية
  • -rm tells -rm لإزالة الحاوية بمجرد انتهاء الأمر
  • java هو اسم الخدمة / الحاوية (من ملفنا الخاص بمؤسسة docker-compose) والتي سيتم تشغيل هذا الأمر ضدها
  • ما تبقى من الخط هو الأمر للتشغيل داخل الحاوية.

هذه طريقة رائعة للتعامل مع تشغيل إصدارات مختلفة من Java لتطبيقات مختلفة دون إجراء فوضى كاملة من الإعداد المحلي الخاص بك :).

في ما يلي مثال أكثر تعقيدًا قليلاً يحتوي على Maven وتطبيق Spring بسيط

تنصل:

أريد القيام ببعض البرمجة باستخدام أحدث JavaFX ، والتي تتطلب Java 8. أستخدم IntelliJ 13 CE و Mac OS X 9 Mavericks. ركضت برنامج Java 8 المثبت من Oracle ، والملفات تبدو وكأنها انتهى بها المطاف

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk

لكن الإصدارات السابقة في

/System/Library/Java/JavaFrameworks/jdk1.6....

لست متأكداً من السبب في قيام آخر مثبت بوضع هذا في /Library بدلاً من /System/Library (ولا ما هو الفرق). ولكن /usr/libexec/java_home لم يعثر على 1.8 ، لذلك لا تعمل جميع المشاركات التي وجدتها حول كيفية تعيين إصدار جافا الحالي. لقد حاولت إضافة ارتباط رمزي لجعله يبدو مثل 1.8 في مسار /System/Library... ولكنه لا يساعد. /usr/libexec/java_home -V لا يزال يسرد فقط java القديمة 1.6.

ومن المفارقات ، لوحة التحكم "Java" ضمن System Preferences تعرض فقط java 1.8!

لماذا لا يضعها برنامج تثبيت Oracle في مكانه؟ وكيف يمكنني العمل حول هذه المشكلة؟


أسهل طريقة -

1) brew cask install java (No need to install cask separately it comes with brew)

2) java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

PS - ما هو برميل مشروب؟ يمد Homebrew-Cask Homebrew ، ويحل مشكلة تنفيذ أمر إضافي - "لتثبيت ، اسحب هذا الرمز ..." بعد تثبيت تطبيق باستخدام Homebrew .


إذا كان لديك العديد من إصدارات Java على جهازك وتريد أن تختارها ديناميكيًا في وقت التشغيل ، أي في حالتي ، لديّ نسختين:

ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x  3 root  wheel    96B Nov 16  2014 jdk1.7.0_71.jdk/
drwxr-xr-x  3 root  wheel    96B Mar  1  2015 jdk1.8.0_31.jdk/

يمكنك تغييرها عن طريق تعديل /etc/profile content. ما عليك سوى إضافة (أو تعديل) السطرين التاليين في نهاية الملف:

export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

في حالتي ، يجب أن يكون الأمر كما يلي إذا كنت أرغب في استخدام:

جافا 7:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

جافا 8:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

بعد حفظ الملف ، يرجى تشغيل source /etc/profile ويجب أن يعمل. فيما يلي النتائج عند استخدام الخيار الأول والثاني وفقًا لذلك:

جافا 7:

java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)

جافا 8:

java -version 
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)

تشبه العملية إذا كان مجلد java موجودًا في مواقع مختلفة.


الخطوات أدناه عملت بالنسبة لي.

1) إلغاء تثبيت جميع jdks

في النافذة الطرفية انسخ والصق الأمر أدناه:

sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefpane

2) تثبيت APPLE jdk.

https://support.apple.com/kb/DL1572?locale=en_US

3) قم بتنزيل أحدث JDK من Oracle وقم بتثبيته ، بالنسبة لي كان JDK 1.82

http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

هذا كل ما سوف يعمل مثل السحر.


انا ايضا املك نفس المشكلة. ولكن بعد قليل من الضرب والمحاكمة ، تمكنت من حل المشكلة.

حاول إزالة 1.6 sdk بواسطة sudo rm وأعد تشغيل جهاز Mac.

قم بتنزيل الملف .dmg مرة أخرى. من المحتمل أن يكون برنامج التثبيت .dmg الذي قمت بتنزيله تالفًا. قم بتثبيت مرة أخرى.

قم بتشغيل الأمر التالي بعد التثبيت. أنه يعطي مسار ل JDK 8. / usr / libexec / java_home -v 1.8

كما يمكنك تشغيل ورؤية مجلد 8 jdk. قد تكون الملفات مخفية. ls -al / Library / Java / JavaVirtualMachines /


باستخدام الشراب

brew install Caskroom/cask/java

لدي تطبيقات تستخدم كل من Java 7 و 8 وعليك أن تذهب ذهابًا وإيابًا طوال الوقت.

أستخدم هذا النص المكتوب بواسطة يوهان:

http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/

يمكنك الآن تعيينه عند بدء التشغيل أو الاتصال بالبرنامج النصي بعد ذلك.
قم بتثبيت JDK لـ Mac.

جافا 7

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

جافا 8

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


لقد فعلت هذا على MBP الخاص بي ، وكان علي أن استخدم

$ brew tap caskroom/versions
$ brew cask install java8

من أجل الحصول على java8 لتثبيت.





java-8