একই লিনাক্স মেশিনে একাধিক জাভা পরিবেশ


9

একই লিনাক্স মেশিনে একাধিক সমবর্তী জাভা জেডিকে সংস্করণ ইনস্টল করার সবচেয়ে কার্যকর উপায় কোনটি ?

আমার বর্তমান উবুন্টু ৯.১০ কার্মিক জাভা with সহ লোড হওয়া অবস্থায় আমার জাভা ৫ প্রয়োজন।

আমি জানি আমি এটির জন্য একটি ভিএম সেটআপ করতে পারি তবে আমি বিকল্পগুলি খুঁজছি।

উত্তর:


5

আপনি যদি সূর্যের থেকে লিনাক্স বাইনারি ডাউনলোড করেন তবে আপনি এটি পছন্দমতো ডিরেক্টরিতে ইনস্টল করতে পারেন। তারপরে আপনার কোডগুলিতে কেবল সেই লিবগুলি উল্লেখ করুন এবং আপনি যেতে ভাল।

বাইনারি ইনস্টলারের সাহায্যে এটি নিজস্ব নামের একটি সাব-ডাইরেক্টরি তৈরি করবে (যেমন আপনার উদাহরণে, /usr/java/jdk1.5.0_), সুতরাং আপনি যতগুলি চান ডাউনলোড করতে পারেন এবং তারা যথাযথ নামটিতে নিজেকে যুক্ত করবে উপ-drectories।

মূল জাভা বাইনারি / ইউএসআর / বিনে থাকে, সুতরাং আপনি যদি সেই স্থানটি প্রতিস্থাপন করতে চান যেখানে আপনি "জাভা" টাইপ করেন এটি আপনার জাভাটি অ্যাক্সেস করে, এবং একটিটি না, আপনি কেবল পুরানোটিকে / usr / বিনের বাইরে সরিয়ে নিন , এবং সেখানে আপনার নতুন লিঙ্ক। টাইপিং which javaআপনাকে বলবে যে আপনার সিস্টেমে ডিফল্ট জাভা কি।

@ জাল্ডুপন্ট: আমি যখন একযোগে ইনস্টল করার কথা ভাবি, তখন আমি একই মেশিনে ইনস্টল করা একাধিক সংস্করণ সম্পর্কে চিন্তা করি, যা আমার পদ্ধতিটি আপনাকে একেবারে দেবে। কর্পোরেট থেকে হ্যান্ড-মি-ডাউনগুলি পরিচালনা করতে আমার প্রযোজনা বাক্সে আমার কাছে প্রায় 12 টি জাভা ইনস্টল আছে যা এখনও আপডেট হয়নি।

তবে আপনি "জাভা" টাইপ করার সময় আপনি কেবল জাভাটির একটি সংস্করণ পেতে চলেছেন, যেহেতু এটি '/usr/bin'- এ রয়েছে .. আপনি' /usr/java/jdk1.5.1/ এর মতো কিছু টাইপ করতে হবে বিন / জাভা 'নির্দিষ্ট জাভা বাইনারি পাওয়ার জন্য যা সিস্টেম ডিফল্ট নয়।


ধন্যবাদ তবে আমার একযোগে ইনস্টলগুলি দরকার । আমি কেমন করে ঐটি করি?
jldupont

ধন্যবাদ। আমি এখন JDK5 ইনস্টল / অপ্ট করেছি এবং নিজেকে পরিবেশের ভেরিয়েবল সেটআপ করার জন্য একটি বাশ স্ক্রিপ্ট লিখেছি ... দেখে মনে হচ্ছে এটি কাজ করে। আমি ভেবেছিলাম এর চেয়ে বেশি কষ্ট হবে!
jldupont

@ জাল্ডুপন্ট: আসলে লিনাক্স সম্পর্কে আমি পছন্দ করি এটিগুলির মধ্যে একটি ... যেহেতু কোনও রেজিস্ট্রি পাওয়ার উপায় নেই, আপনি একই জিনিসটি কয়েকশো বার ইনস্টল করতে পারেন এবং আপনি যতক্ষণ নিশ্চিত করছেন ততক্ষণ কোনও সমস্যা হবে না সাধারণ ফাইলগুলি অতিরিক্ত লেখার জন্য নয় to আমি প্রচুর লোককে জানি যারা অ্যাপাচের একাধিক বিভিন্ন সংস্করণ চালায় (উদাহরণস্বরূপ)। আমি নিজেও পার্ল এবং জাভার একাধিক সংস্করণ চালানোর ঝোঁক।
শয়তানিকপিপি

1

কেবল ওরাকল থেকে .bin ফাইলটি ডাউনলোড করুন এবং চালিত করুন যা তারপরে নিজেকে একটি ফোল্ডারে উত্তোলন করে। এই ফোল্ডারটি (যেমন jdk1.6.0_32) / usr / lib / jvm এ সরান এবং তারপরে setjavaজাভা সংস্করণগুলি পরিবর্তনের জন্য আমি যে স্ক্রিপ্টটি ব্যবহার করব। exportবিবৃতিগুলির কারণে আপনাকে একই টার্মিনালে থাকতে হবে। এছাড়াও কিছু ছোট jvm সরঞ্জাম সেট নাও করা যেতে পারে তবে আমার ধারণা এটি বেশিরভাগ ক্ষেত্রেই কাজ করা উচিত। এছাড়াও আমি একটি শেল নুব তাই আরও ভাল সম্ভাবনা থাকলে দয়া করে আমাকে সংশোধন করুন :-) আমার জন্য কোডটি হ'ল:

#!/bin/bash
# shouldnt be used in a loop, else the path may become too long

if [[ $(/usr/bin/id -u) -ne 0 ]]; then
    echo "Not running as root"
    exit
fi

case "$1" in
  6)
    echo "Setting Java version 6"
    export PATH=/usr/lib/jvm/jdk1.6.0_32/bin:$PATH
    export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_32
    sudo rm /usr/bin/java
    sudo rm /usr/bin/javac
    sudo rm /usr/bin/javadoc
    sudo rm /usr/bin/javah
    sudo rm /usr/bin/javap
    sudo rm /usr/bin/javaws
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/java /usr/bin/java
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javac /usr/bin/javac
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javadoc /usr/bin/javadoc
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javah /usr/bin/javah
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javap /usr/bin/javap
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javaws /usr/bin/javaws
    javac -version    
    java -version
    ;;
  7)
    echo "Setting Java version 7"
    export PATH=/usr/lib/jvm/java-7-openjdk/bin:$PATH
    export JAVA_HOME=/usr/lib/jvm/java-7-openjdk/
    sudo rm /usr/bin/java
    sudo rm /usr/bin/javac
    sudo rm /usr/bin/javadoc
    sudo rm /usr/bin/javah
    sudo rm /usr/bin/javap
    sudo rm /usr/bin/javaws
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/java /usr/bin/java
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javac /usr/bin/javac
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javadoc /usr/bin/javadoc
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javah /usr/bin/javah
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javap /usr/bin/javap
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javaws /usr/bin/javaws
    javac -version
    java -version
    ;;
  *)
    echo "Usage: $0 {6|7}"

esac
exit 0

রফতানি বিবৃতিগুলি কীভাবে কাজ করবে তা নিশ্চিত নয় হফনার। আমি চেষ্টা করার পরে তারা কাজ করে না।
সুরেশ এস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.