سؤال
هل هناك Ruby Version Manager ما يعادل عالم جافا؟
أبحث عن أداة تسمح لي بسهولة تنزيل وتثبيت JVMs جديدة والتبديل بينهما. فمثلا:
jvm install <version>
jvm list //will list installed JVMs on my system
jvm use jdk1.6 //will switch my env to jdk 1.6 version, etc.
المحلول
إذا كنت تستخدم Ubuntu ، فيمكنك تحديد JVM الذي تريد استخدامه عبر الأمر (يعمل فقط لـ JVM المثبت من APT-Get أو الكفاءة)
sudo update-alternatives --config java
أو عن طريق ضبط Java_home. هنا تعليمي جيد:
نصائح أخرى
http://www.jenv.be/ سيسمح لهذا النوع من التحكم.
باستخدام JVMS ، إذا كنت بحاجة إلى التبديل بينهما ، فأنت بحاجة فقط إلى استخدام ملف دفعي (أو نص PowerShell) لإدارة مسار ClassPath و JVM. لا تحتاج إلى الاعتماد على مسار JVM الافتراضي للنظام ، وبدلاً من ذلك ، السماح لتطبيقك بالإشارة إلى أي JVM تحبها عن طريق تغيير بيئة مسار ClassPath و JVM في القشرة التي تدير JVM.
بالنسبة للبرامج التي تحصل على موقع Java من السجل ، من الناحية النظرية ، يمكنك استخدام برنامج نصي دفعي لتحديث ذلك أيضًا.
في هذا الصدد ، تعتبر Java أسهل من "Ruby Version Manager".
سدكمان! هي أداة مماثلة للنظام البيئي Java. يدعم العديد من إصدارات Java و Scala و Clojure و Kotlin و Groovy و Build أدوات مثل Maven و Gradle.
يعمل على Mac و Linux ، مع بعض الإشارات من الدعم لنظام التشغيل Windows اعتمادًا على مدى صعوبة الاستعداد للمحاولة :)
الحيلة هي استخدام تحديث java-alternities (من حزمة Java-Common). لن يقوم أمر التحديث بالتحديث إلى تحديث كل واحدة من الروابط الرمزية لمختلف التنفيذيين من Java /Bin ، وهذا هو السبب في أن التحديث-java-alternities أفضل.
لذلك للذهاب إلى OpenJdk من 6 إلى 7 ، استخدم update-java-alternatives -l
للحصول على قائمة بدائل Java ثم تستخدم sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
لتبديل JDK.
التحذير: قد يرمي الأمر أعلاه الأخطاء التالية ،
update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist:
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
هذا لأن المكون الإضافي OpenJDK غير مثبت بشكل افتراضي. لإصلاح التشغيل sudo apt-get install icedtea-7-plugin
وإعادة تشغيل التحديث-java-alternities.