ওএস এক্সে ডিফল্ট জাভা (জেডিকে) সংস্করণ কীভাবে সেট করবেন বা পরিবর্তন করবেন?


774

আপনি কীভাবে ম্যাকের জাভাটির ডিফল্ট সংস্করণটি পরিবর্তন করতে পারেন?


2
নির্বাহী /usr/libexec/java_homeআপনাকে কী বলে?
বার্ট

2
/ ইউএসআর / লিবেক্সেক / জাভা_হোম রিটার্ন / সিস্টেম / লাইব্রেরি / জাভা / জাভা ভার্চুয়ালম্যাচাইনস / ১.০.০. জেডকি / কনটেন্টস / হোম
ভেঙ্কট

আপনার কেবল পুনরায় বুট করার দরকার হতে পারে। আপনি কি চেষ্টা করেছেন?
বার্ট

হ্যাঁ কম্পিউটার এবং টার্মিনাল পুনরায় চালু হয়েছে ... কোনও পরিবর্তন নেই।
ভেঙ্কট

3
আপনি দয়া করে নীচে @ মার্কেলওয়েল থেকে সর্বাধিক ভোট দেওয়া উত্তর গ্রহণ করতে পারেন? এটি আমাকে এটি আরও দ্রুত খুঁজে পেতে সহায়তা করবে এবং এটি খুব সুন্দর। :)
তিত্তে

উত্তর:


1402

প্রথম রান /usr/libexec/java_home -Vযা নিম্নলিখিতগুলির মতো কিছু আউটপুট দেবে:

Matching Java Virtual Machines (3):
1.8.0_05, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
1.6.0_65-b14-462, x86_64:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

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

আপনি যে সংস্করণটি ডিফল্ট হতে চান তা চয়ন করুন ( 1.6.0_65-b14-462তর্ক করার জন্য) এরপরে:

export JAVA_HOME=`/usr/libexec/java_home -v 1.6.0_65-b14-462`

অথবা আপনি কেবলমাত্র প্রধান সংস্করণ নির্দিষ্ট করতে পারেন:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

এখন যখন আপনি দৌড়াবেন java -versionআপনি দেখতে পাবেন:

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

যোগ export JAVA_HOME…আপনার শেল এর Init ফাইলে লাইন।

বাশের জন্য (যেমন অ্যান্টনিহ বলেছেন ):

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

মাছের জন্য (যেমন ormurin দ্বারা বর্ণিত)

set -x JAVA_HOME (/usr/libexec/java_home -d64 -v1.8)

2
@ ম্যাটো'ব্রায়ান এটি এমন কিছু যা আপনি ব্যবহার করছেন শেল এবং আপনার যে কনফিগারেশনটি রয়েছে তা নির্ভর করে, তাই আমি এর জন্য একটি সম্পূর্ণ সমাধান দিতে পারি না ...
মার্চেলওয়েল

11
যারা সত্যই exportলাইনটির ব্যাকটিক্স
ডেভিড ওয়েস্ট

6
এটি আমার পক্ষে কার্যকর হয়নি। চালু করা থেকে java_home -V পথ দখল এবং এই রপ্তানি JAVA_HOME মত রপ্তানি কমান্ড এই অ্যাড, = "/ system / লাইব্রেরি / জাভা / JavaVirtualMachines / 1.6.0.jdk / সূচিপত্র / হোম"
Oden

68
এটি বাশ-এ কাজ করে export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)- এছাড়াও নোট করুন, java_home আংশিক মিলগুলি মঞ্জুর করে যাতে আপনাকে সম্পূর্ণ সংস্করণটি অন্তর্ভুক্ত করতে হবে না কারণ এটি সর্বশেষতম ইনস্টলডটি খুঁজে পাবে। এটি আপডেটগুলি আরও সহজ করে তোলে।
আন্তোনিহ

14
আপনি রফতানির জন্য '`` নয়' 'ব্যবহার করছেন তা নিশ্চিত করুন।
বরফখণ্ডা

406

এই উত্তরটি সম্বোধনের একটি প্রয়াস: জাভা সংস্করণ সিস্টেম-প্রশস্ত কীভাবে নিয়ন্ত্রণ করতে হবে (কেবলমাত্র চলমান শেলের মধ্যে নয়) যখন জ্যাককে বেশ কয়েকটি সংস্করণ ম্যাকোস এল ক্যাপিটান বা নতুন (সিয়েরা, হাই সিয়েরা, মোজাভে) তে বিকাশের উদ্দেশ্যে ইনস্টল করা হয় । আমি যতদূর বলতে পারি, বর্তমানের উত্তরগুলির মধ্যে কেউই এটি (*) করে না।

বিকাশকারী হিসাবে, আমি বেশ কয়েকটি জেডিকে ব্যবহার করি এবং আমি সহজেই একটি থেকে অন্যটিতে যেতে চাই। সাধারণত আমার কাছে সাধারণ ব্যবহারের জন্য সর্বশেষতম স্থিতিশীল থাকে এবং অন্যরা পরীক্ষার জন্য। তবে আমি চাই না যে সিস্টেমটি (যেমন আমি আমার আইডিই শুরু করি) আপাতত আমার কাছে থাকা সর্বশেষ "প্রাথমিক অ্যাক্সেস" সংস্করণটি ব্যবহার করুন। আমি সিস্টেমের ডিফল্ট নিয়ন্ত্রণ করতে চাই এবং এটি সর্বশেষ স্থিতিশীল হওয়া উচিত।

নিম্নলিখিত পদ্ধতির জাভা 7 থেকে 12 এর সাথে কাজ করে অন্তত (এই লেখার সময়ে আগাম অ্যাক্সেস), সঙ্গে ওরাকল JDK বা OpenJDK (তত্সহ তৈরী করে AdoptOpenJDK অক্টোবরের মাঝামাঝি সময়ে 2018 পর উত্পাদিত দ্বারা )।

তৃতীয় পক্ষের সরঞ্জামগুলি ছাড়াই সমাধান:

  • এর অধীনে সমস্ত জেডিকে তাদের ডিফল্ট অবস্থানে ছেড়ে দিন /Library/Java/JavaVirtualMachines। সিস্টেমটি ডিফল্টরূপে সর্বোচ্চ সংস্করণটি বেছে নেবে।
  • কোনও জেডিকে ডিফল্টরূপে বাছাই করা থেকে বাদ দিতে, এর নামকরণ Contents/Info.plistকরুনInfo.plist.disabled । জেডিকে এখনও এটি ব্যবহার করা যেতে পারে যখন $JAVA_HOMEএটি নির্দেশ করে, বা স্পষ্টভাবে কোনও স্ক্রিপ্ট বা কনফিগারেশনে উল্লেখ করা হয়। এটি কেবল সিস্টেমের javaআদেশ দ্বারা উপেক্ষা করা হবে ।

সিস্টেম লঞ্চার জেডিকে ব্যবহার করবে যাদের Info.plistফাইল রয়েছে তাদের মধ্যে সর্বোচ্চ সংস্করণ রয়েছে ।

বিকল্প জেডিকে দিয়ে শেলের সাথে কাজ করার সময়, বিদ্যমান উত্তরগুলির মধ্যে আপনার পদ্ধতিটি বেছে নিন (jenv বা আশেপাশে কাস্টম নাম / স্ক্রিপ্টস /usr/libexec/java_homeইত্যাদি)


এই টুকরো তদন্ত বিশদ


(*) বর্তমান উত্তরগুলি হয় অপ্রচলিত (ম্যাকোস এল ক্যাপিটান বা সিয়েরার জন্য আর বৈধ নয়), বা কেবল একটি একক জেডিকে সম্বোধন করে, বা সিস্টেম-ব্যাপী দিকটি সম্বোধন করে না। অনেকে কীভাবে পরিবর্তন করবেন তা ব্যাখ্যা করে $JAVA_HOME, তবে এটি কেবল বর্তমান শেল এবং সেখান থেকে কী চালু হয় তা প্রভাবিত করে। এটি ওএস লঞ্চার থেকে শুরু হওয়া কোনও অ্যাপ্লিকেশনকে প্রভাবিত করবে না (যদি না আপনি সঠিক ফাইল এবং লগআউট / লগইন পরিবর্তন করেন যা ক্লান্তিকর)। জেনভের পক্ষেও একই, এটি দুর্দান্ত এবং সব কিছু, তবে যতদূর আমি এটি বলতে পারি পরিবেশের পরিবর্তনগুলি কেবল পরিবর্তন করে, তাই এটির একই সীমাবদ্ধতাও রয়েছে।


16
এটিই আমি উত্তরটি খুঁজছিলাম, যেহেতু সিস্টেম-ব্যাপী জাভা সংস্করণ সেট করতে সক্ষম হয় jenvনা JAVA_HOME, যেমন একটি গ্রহণটি ব্যবহার করবে।
জিওভান্নি লোভাটো

3
@ রদ্রিগো হ্যাঁ, "তদন্তের বিশদ" তে উল্লিখিত হিসাবে (উপরে সংযুক্ত): "একটি জেডিকে ইনস্টল করাও ওভাররাইট করে App /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/সম্ভবত নতুন পছন্দগুলি ফলকটি প্রবর্তন করবে - এটিই আমার সমাধানে পাওয়া একমাত্র ব্যতিক্রম that জিনিসটি এখনও জেডিকে 9 ব্যবহার করবে (সর্বশেষ আমি ইনস্টল করেছি), তবে অন্য কোনও জাভা অ্যাপ্লিকেশন তা করে না।
হিউজ এম।

2
জাভা সংস্করণগুলি / লাইব্রেরি / জাভা / জাভা ভার্চুয়ালম্যাচাইনসগুলিতে পাওয়া যায় এবং উপরোক্ত চমৎকার কার্যক্ষম সমাধানটি সেই প্রসঙ্গেই লক্ষ্য করা যায়।
অ্যান্ড্রু কোস্তকা

3
ঠিক এই প্রশ্নটির জন্য এটি সেরা এবং সর্বাধিক কার্যকরী সমাধান। দুর্ভাগ্যক্রমে তাই।
এয়ারোডায়নিকা

3
এই উত্তরের জন্য আমি আপনাকে যথেষ্ট ধন্যবাদ জানাতে পারি না। ওএস প্রবর্তক থেকে এই নির্দিষ্ট প্রবর্তন অ্যাপ্লিকেশনগুলি।
রঘুপতি

246

উপরের উত্তরগুলি যুক্ত করে, আমি আমার .bash_profile(বা .zshrcম্যাকোস 10.15+) এর জন্য নিম্নলিখিত লাইনগুলি রেখেছি যা এটি স্যুইচ করা সত্যিই সুবিধাজনক করে তোলে (জাভা 9 এর জন্য @ এলেক্ট্রোমিনের মন্তব্য সহ):

alias j12="export JAVA_HOME=`/usr/libexec/java_home -v 12`; java -version"
alias j11="export JAVA_HOME=`/usr/libexec/java_home -v 11`; java -version"
alias j10="export JAVA_HOME=`/usr/libexec/java_home -v 10`; java -version"
alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version"
alias j8="export JAVA_HOME=`/usr/libexec/java_home -v 1.8`; java -version"
alias j7="export JAVA_HOME=`/usr/libexec/java_home -v 1.7`; java -version"

সন্নিবেশ করার পরে, কার্যকর করুন $ source .bash_profile

আমি নিম্নলিখিত টাইপ করে জাভা 8 এ স্যুইচ করতে পারি:

$ j8
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)

5
এটি জাভা 9 এর সিনট্যাক্স:alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version"

3
দ্রুত স্যুইচিংয়ের জন্য দারুণ সরল উপাধি।
gbonetti

ব্যবহার করে alias j10="export JAVA_HOME=`/usr/libexec/java_home`; java -version"এবং তারপরে টাইপ করা j10আপনাকে জাভার বর্তমান সংস্করণে ফিরে যেতে অনুমতি দেয় (আমার ক্ষেত্রে জাভা 10)
इंटাগলি

আমি nvmজাভা সংস্করণগুলির স্যুইচিংয়ের মতো একটি ক্লাইট সরঞ্জাম তৈরি করব , তবে সংক্ষিপ্ত রূপটি jvmইতিমধ্যে অন্যরকম কিছু বোঝায় :)
অ্যান্ডি

/Users/me/.zshrc:8: permission denied: /Library/Java/JavaVirtualMachines/openjdk-12.jdk/Contents/Home
সোর্সিংয়ের

55

/ ইউএসআর / লিবেক্সেক / জাভা_হোমের উপর ভিত্তি করে একটি ছোট ফিশ ফাংশন

function jhome
    set JAVA_HOME (/usr/libexec/java_home $argv)
    echo "JAVA_HOME:" $JAVA_HOME
    echo "java -version:"
    java -version
end

আপনি যদি মাছ ব্যবহার না করেন তবে আপনি ব্যাশে অনুরূপ কিছু করতে পারেন:

#!/bin/bash

jhome () {
  export JAVA_HOME=`/usr/libexec/java_home $@`
  echo "JAVA_HOME:" $JAVA_HOME
  echo "java -version:"
  java -version
}

তারপরে জাভাসের মধ্যে স্যুইচ করতে:

$> jhome           #switches to latest java
$> jhome -v 1.7    #switches to java 1.7
$> jhome -v 1.6    #switches to java 1.6

রেফ: https://gist.github.com/kenglxn/1843d552dff4d4233271


1
এটি শুধুমাত্র নির্দিষ্ট টার্মিনাল সেশনের জন্য পরিবর্তন করে। এটির সিস্টেম চওড়া পরিবর্তনের জন্য কি এটি আপডেট করার কোনও উপায় আছে?
ENG618

1
export JAVA_HOME=(/usr/libexec/java_home $argv)আপনার jhomeফাংশনের দ্বিতীয় লাইনের পরিবর্তে আমাকে লিখতে হয়েছিল ।
ড্যানিয়েল এএ পেলসেমেকার

32

এটি কিছুটা জটিল, তবে ওএস এক্স 10.9 (ম্যাভেরিক্স) এ জাভা ইনস্টল করার বর্ণিত পদক্ষেপগুলি অনুসরণ করার চেষ্টা করুন । মূলত, আপনাকে নিজের নামটি আপডেট করতে হবে java

ধাপে ধাপে:

JDK 1.7 ইনস্টল করার পরে, sudo ln -snfলিঙ্কটি কারেন্টে পরিবর্তন করার জন্য আপনাকে কাজটি করতে হবে java। এটি করতে, টার্মিনালটি খুলুন এবং কমান্ডটি জারি করুন:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents \
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

নোট করুন যে ডিরেক্টরিটি jdk1.7.0_51.jdkআপনি ইনস্টল করেছেন এমন SDK সংস্করণ অনুসারে পরিবর্তন হতে পারে।

এখন, আপনাকে JAVA_HOMEকোথায় jdk_1.7.0_xx.jdkইনস্টল করা হয়েছে তা নির্দেশ করতে হবে । টার্মিনালটি আবার খুলুন এবং টাইপ করুন:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home"

আপনার টার্মিনালে স্থায়ীভাবে জাভা রাখতে export JAVA_HOMEআপনি আপনার .bashrcফাইলের উপরের লাইনটি যুক্ত করতে পারেন


1
আমি জাভাএহোম চলককে কীভাবে সেট করব? আমি এটি নির্দিষ্ট কোন নির্দিষ্ট জায়গা আছে?
ভেঙ্কট

আমি জাভাআহোম কোথায় রফতানি করছি? আর তা কোথায় রক্ষা পাবে?
ভেঙ্কট

1
আমি উত্তর আপডেট করেছি। আপনি যে SDK সংস্করণটি ইনস্টল করেছেন তা কি জানেন? ফোল্ডারের নামটি SDK সংস্করণ নম্বর নেয়, সুতরাং উপরের কমান্ডগুলি কিছুটা পরিবর্তন করতে পারে।
ট্রেন

আমি সর্বশেষ এক ইনস্টল আমার মনে হয় এটা 51. হয়
ভেঙ্কট

চলকটি JAVA_HOMEবর্তমান টার্মিনাল সেশনে রফতানি করা হবে। আপনি চাইলে এটি আমাদের সাথে যুক্ত .bashrcকরতে পারেন। আমি আদেশগুলি শেষ সংস্করণে অভিযোজিত করব।
ট্রেন

32

জেনভ ব্যবহার করা একটি সহজ উপায়।

1. ইনস্টল জেনভ

    কার্ল-গুলি get.jenv.io | সজোরে আঘাত

2. কনফিগ জেনভ

    সিডি ~ / .জেএনভ / প্রার্থী /
    mkdir java
    সিডি জাভা
    mkdir 1.7
    mkdir 1.8

S.জডিকে পাথ সিমলিংক করুন

    এলএন -এস / লাইব্রেরি / জাভা / জাভা ভার্চুয়ালম্যাচাইনস / জেডকি 1.7.0_79.jdk/ কনটেন্টস / হোম / বিন। / .জেএনভি / প্রার্থী / জাভা / 1.7
    এলএন -এস / লাইব্রেরি / জাভা / জাভা ভার্চুয়ালম্যাচাইনস / জেডকি 1.8.0_45.jdk/ সামগ্রী / হোম / বিন ome / জেনভ / প্রার্থী / জাভা / 1.8

4. আপনি সব প্রস্তুত

কমান্ড স্যুইচ করুন:

jenv জাভা ব্যবহার 1.8

ডিফল্ট সেট করুন:

jenv ডিফল্ট জাভা 1.7


পরিষ্কার এবং সুন্দর সমাধান।
পিন্টিউরিক

"জেনভ জাভা 1.8 ব্যবহার করুন" এর পরিবর্তে আমাকে "জেনভ শেল ১.৮" ব্যবহার করতে হয়েছিল। "শেল" প্রয়োজনের উপর নির্ভর করে "গ্লোবাল" বা "স্থানীয় "ও হতে পারে।
স্টিভ গেলম্যান

1
জেনভ কাজ করে যখন দুর্দান্ত। যদিও এর বিরুদ্ধে প্রস্তাব দেওয়া হবে, কারণ এটি "সত্যই" ব্যবহৃত ডিফল্ট জাভা সংস্করণটি পরিবর্তন করে না, কেবল "জাভাহোম" কমান্ড চালিয়ে "/ usr / libexec / java_home -V" চালিয়ে স্পষ্ট হয় ident এটি কিছু অ্যাপ্লিকেশন যেমন উদ্বোধনের সাথে অদ্ভুত সমস্যা সৃষ্টি করে।
সাইমন

আমার অদ্ভুত অংশটি বাদ দিয়ে কোনও কিছুকে কার্ল করার বিরুদ্ধে পরামর্শ দেয়। এমনকি যদি আপনি মনে করেন যে সাইটটি কেউ বিশ্বাসযোগ্য তবে এটি আপনাকে আন-হ্যাক করার যোগ্যতা নিশ্চিত করতে পারে না। আপনার ওএসের প্যাকেজ ম্যানেজারটি ব্যবহার করুন।
আলেকসান্দ্র ক্রেভেটস


28

জেডিকে ইনস্টল করুন, শুধু জেআরই নয়

/usr/libexec/java_home -v 1.8

দেয়

/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home

পরবর্তী

touch .bash_profile

open -a TextEdit.app .bash_profile

TextEdit আপনাকে একটি ফাঁকা পৃষ্ঠা দেখাবে যা আপনি পূরণ করতে পারেন fill

দস্তাবেজে যুক্ত করুন: export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home

টার্মিনালে:

export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"

কমান্ড চেষ্টা করুন:

javac -version

আউটপুট করা উচিত:

javac 1.8.0_111

26

TL; ড

লাইন যুক্ত করুন:

export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home'

ফাইলটি

~/.bash_profile

(আপনার ডাউনলোড করা সংস্করণ দিয়ে jdk1.8.0_144.jdk প্রতিস্থাপন করুন)

তারপর source ~/.bash_profile


22

জেনভ ব্যবহার করুন, এটি জাভা এনভায়রনমেন্ট ম্যানেজারের মতো। এটি ব্যবহার করা এবং পরিষ্কার করা অত্যন্ত সহজ

ম্যাকের জন্য, পদক্ষেপগুলি অনুসরণ করুন:

brew install jenv

git clone https://github.com/gcuisinier/jenv.git ~/.jenv

ইনস্টলেশন: আপনি যদি ব্যাশ ব্যবহার করছেন তবে এই পদক্ষেপগুলি অনুসরণ করুন:

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(jenv init -)"' >> ~/.bash_profile

$ exec $SHELL -l

জেএনভিতে JVM এর পছন্দসই সংস্করণ যুক্ত করুন:

jenv add /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

jenv add /System/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home

ইনস্টল করা সংস্করণগুলি পরীক্ষা করুন:

jenv versions

আপনি যে জাভা সংস্করণটি ব্যবহার করতে চান সেটি সেট করুন:

jenv global oracle64-1.6.0

এটি আমার জন্য নিখুঁতভাবে কাজ করেছে, ধন্যবাদ!
ফার্নান্দো গ্যাব্রিয়েলি

আমি একটি অনুরূপ সরঞ্জাম ব্যবহার করছি: sdkman.io/usage - ম্যানুয়াল এলিয়াস ইত্যাদির চেয়ে IMHO অনেক ভাল পদ্ধতির
সাথোখ

12
function setjdk() {
  if [ $# -ne 0 ]; then
    removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
    if [ -n "${JAVA_HOME+x}" ]; then
      removeFromPath $JAVA_HOME
    fi
    export JAVA_HOME=`/usr/libexec/java_home -v $@`
    export PATH=$JAVA_HOME/bin:$PATH
  fi
}

এই করা আপনার ~ / .profile এবং তাই মত আপনার টার্মিনাল এটি ব্যবহার setjdk 1.8, setjdk 1.7, setjdk 9ইত্যাদি ইত্যাদি ...

আপনার যদি না থাকে removeFromPathতবে তা হ'ল:

function removeFromPath() { export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;") }


12

ডিফল্ট প্রক্রিয়া ব্যবহার করে এমন লোকদের জন্য টার্মিনাল ব্যবহার করে চারটি সহজ পদক্ষেপ .. :)

  1. echo $JAVA_HOMEআপনাকে বাড়িতে বর্তমান জবা দেয়। যেমন:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/

  2. cd /Library/Java/JavaVirtualMachines/ আপনি সেই ফোল্ডারে নিয়ে যাবেন যেখানে আপনি সাধারণত jdks ইনস্টল করেন (এটি আপনার মেশিনগুলির জন্য আলাদা হতে পারে)

  3. lsআপনাকে ফোল্ডারগুলি উপলভ্য দেখায় (সাধারণত এটির সংস্করণ সংখ্যা থাকবে, উদাহরণস্বরূপ jdk1.8.0_191.jdk openjdk-11.0.2.jdk:)
  4. export JAVA_HOME='/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home' জাভা বাড়িতে পরিবর্তন হবে ..

8

~/.zshenvফাইলটিতে নিম্নলিখিত কমান্ড যুক্ত করুন

export JAVA_HOME=`/usr/libexec/java_home -v 1.8` 

8

ম্যাকোস এল ক্যাপিটান বা আরও নতুন জেদেকে উপলব্ধ উচ্চতর সংস্করণ চয়ন করবে /Library/Java/JavaVirtualMachines, সুতরাং ডাউনগ্রেড করার জন্য আপনি ফাইলটির Info.plistঅন্য কোনও নাম রাখতে পারেন Info.plist.disabledযাতে ওএস একটি পূর্ববর্তী সংস্করণ চয়ন করে।


সবচেয়ে সহজ উপায় (: ধন্যবাদ
সত্যীশ শ্রীনিবাসন

6

অ্যাপলের অফিসিয়াল জাভা_হোম (1) ম্যান পেজ থেকে :

**USAGE**

   /usr/libexec/java_home  helps  users  set a $JAVA_HOME in their login rc files, or provides a way for
   command-line Java tools to use the most appropriate JVM which can satisfy a minimum version or archi-
   tecture  requirement.  The --exec argument can invoke tools in the selected $JAVA_HOME/bin directory,
   which is useful for starting Java command-line tools from launchd plists without hardcoding the  full
   path to the Java command-line tool.

   Usage for bash-style shells:
          $ export JAVA_HOME=`/usr/libexec/java_home`

   Usage for csh-style shells:
          % setenv JAVA_HOME `/usr/libexec/java_home`

6

প্রথমে আপনি পরিবেশের ভেরিয়েবলগুলি কোথায় সঞ্চয় করবেন তা সন্ধান করুন -

  1. Emacs
  2. bash_profile
  3. zshrc ফাইল

পরিবেশ পরিবর্তনশীল সেট আপ করার পদক্ষেপ: -

  1. জেভিএ থেকে জেডিকে ডাউনলোড করুন
  2. ডাবল ক্লিক করে এটি ইনস্টল করুন
  3. এখন আপনার ফাইলটিতে পরিবেশের পরিবর্তনগুলি সেট আপ করুন

    ক। জন্য emacs.profile আপনি এই ব্যবহার করতে পারেন লিংক অথবা নীচের স্ক্রিনশট দেখতে

এখানে চিত্র বর্ণনা লিখুন

খ। জেডএসএইচ প্রোফাইল সেটআপের জন্য -

1. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

2. source ~/.zshrc - Restart zshrc to reflect the changes.

3. echo $JAVA_HOME - make sure path is set up properly 
   ----> /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

4. java -version 

   -->  java version "1.8.0_112"  Java(TM) SE Runtime Environment (build 1.8.0_112-b16)Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)

সমস্ত সেট এখন আপনি সহজেই জাভা ভার্সন আপগ্রেড বা হ্রাস করতে পারেন ..


5

জেডিকে স্যুইচ স্ক্রিপ্ট

আমি উপরের @ অ্যালেক্স থেকে উত্তরটি অভিযোজিত করেছি এবং জাভা 9 এর কোড ঠিক করার জন্য নিম্নলিখিতটি লিখেছি।

$ cat ~/.jdk
#!/bin/bash

#list available jdks
alias jdks="/usr/libexec/java_home -V"
# jdk version switching - e.g. `jdk 6` will switch to version 1.6
function jdk() {
  echo "Switching java version $1";

  requestedVersion=$1
  oldStyleVersion=8
  # Set the version
  if [ $requestedVersion -gt $oldStyleVersion ]; then
    export JAVA_HOME=$(/usr/libexec/java_home -v $1);
  else
    export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`;
  fi

  echo "Setting JAVA_HOME=$JAVA_HOME"

  which java
  java -version;
}

জাভা 8 এ স্যুইচ করুন

$ jdk 8
Switching java version 8
Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
/usr/bin/java
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

জাভা 9 এ স্যুইচ করুন

$ jdk 9
Switching java version 9
Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
/usr/bin/java
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

5

এখনও যদি আপনি এটি সেট করতে সক্ষম না হন। এই কমান্ড ব্যবহার করে।

JAVA_Home = রফতানি করুন/usr/libexec/java_home -v 1.8

তাহলে আপনাকে এটি ব্যবহার করতে হবে।

JAVA_Home = রফতানি করুন$(/usr/libexec/java_home -v 1.8)

এটা অবশ্যই কাজ করবে।


4

ডিফল্টরূপে সংস্করণ সেট করতে আপনি এটি আপনার .Bash_profile এ যুক্ত করতে পারেন।

//Open bash profile
open ~/.bash_profile

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

// run bash profile
source ~/.bash_profile

ধন্যবাদ! নোটের বিষয়গুলি, আপনাকে অবশ্যই `চিহ্নগুলি অন্তর্ভুক্ত করতে হবে। এবং স্পষ্টতই, আপনার যে সংস্করণটির প্রয়োজন হতে পারে তার সাথে 1.8 প্রতিস্থাপন করুন। আমার ক্ষেত্রে ১৩.০.২
জেমি এস

3

আপনি যদি মাছ ব্যবহার করছেন এবং আপনি ম্যাক ব্যবহার করছেন এবং আপনি জেডিকে-র মধ্যে পরিবর্তন করতে সক্ষম হতে চান তবে নীচে ম্যাকের জন্য আমার পক্ষে কাজ করে works

@ কেনগ্ল্যাক্সনের উত্তর আমার পক্ষে কার্যকর হয়নি এবং আমি বুঝতে পেরেছিলাম যে এটি বিসিওএস-সেট করেনি যা গ্লোবাল!

নীচে ~ / .config / ফিশ / কনফিগারেশন.ফিশ রাখুন

alias j8="jhome  -v 1.8.0_162"
alias j9="jhome  -v 9.0.1"

function jhome
    set -g -x JAVA_HOME (/usr/libexec/java_home $argv)
    echo "JAVA_HOME:" $JAVA_HOME
    echo "java -version:"
    java -version
end

funcsave jhome

আপনি কোন সংস্করণ / গৌণ সংস্করণ ইনস্টল করেছেন তা জানতে, আপনি এটি করতে পারেন:

/usr/libexec/java_home -V                                                                              579ms  Wed 14 Feb 11:44:01 2018
Matching Java Virtual Machines (3):
    9.0.1, x86_64:  "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
    1.8.0_162, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
    1.8.0_121, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

2

আপনার যদি একাধিক সংস্করণ থাকে এবং নির্দিষ্ট সংস্করণ ব্যবহার করে আপনি কিছু চালাতে চান তবে এই উদাহরণটি ব্যবহার করুন:

/usr/libexec/java_home -v 1.7.0_75 --exec java -jar you-file.jar

2

@মার্কেলওয়েল উত্তরের উপর ভিত্তি করে আমি বেশ কয়েকটি ওরফে ফাংশন তৈরি করেছি যা এটি আপনার জন্য করবে। এগুলি কেবল আপনার শেল স্টার্টআপ ফাইলটিতে যুক্ত করুন

#list available jdks
alias jdks="/usr/libexec/java_home -V"
# jdk version switching - e.g. `jdk 6` will switch to version 1.6
function jdk() { 
  echo "Switching java version"; 
  export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`; 
  java -version; 
}

https://gist.github.com/Noyabronok/0a90e1f3c52d1aaa941013d3caa8d0e4


2

আমি এখানে আমার লিনাক্সে (উবুন্টু / মিন্ট সাথী) এটি কীভাবে করব তা আমার ধারণা ম্যাক এটি একইভাবে করতে পারে।


ইনস্টল করুন এবং কনফিগার করুন

পদক্ষেপ:

  • [বেসিক - অংশ]
  • হাত থেকে jdk ( .tgz ফাইল) ডাউনলোড করুন
  • সঙ্কুচিত করুন এবং একটি সঠিক জায়গায় পুনরায় নামকরণ করুন।
    যেমন /mnt/star/program/java/jdk-1.8
  • একটি নরম লিঙ্ক তৈরি করুন, যা পরে জাভা সংস্করণে পরিবর্তন হবে।
    যেমন ln -s /mnt/star/program/java/jdk-1.8 /mnt/star/program/java/java
    এভাবে/mnt/star/program/java/java নরম লিঙ্ক।
  • JAVA_HOMEএকটি সূচনা স্ক্রিপ্ট সেট করুন ।
    যেমন ফাইল ব্যবহার করতে পারে /etc/profile.d/eric.shবা কেবল ব্যবহার করতে পারে ~/.bashrc
    যেমনJAVA_HOME=/mnt/star/program/java/java
  • তারপরে একটি নতুন ব্যাশ শেল খুলুন। java -versionজাভা সংস্করণ মুদ্রণ করা উচিত।
  • [আরও সংস্করণ - অংশ]
  • উপরের পদক্ষেপের মতো আরও জাভা সংস্করণটি ডাউনলোড করুন এবং ইনস্টল করুন।
    যেমন
    /mnt/star/program/java/jdk-11
  • [স্যুইচ - অংশ]
  • ইন ~/.bashrc, বিভিন্ন জাভা সংস্করণের জন্য পরিবর্তনশীল নির্ধারণ করুন।
    যেমন
    _E_JAVA_HOME_11='/mnt/star/program/java/jdk-11'
    _E_JAVA_HOME_8='/mnt/star/program/java/jdk-8'
    # dir of default version,
    _E_JAVA_HOME_D=$_E_JAVA_HOME_8
  • ইন ~/.bashrc, জাভা সংস্করণ স্যুইচ করতে কমান্ড নির্ধারণ করুন।
    যেমন
    ## switch java version,
    alias jv11="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_11 $JAVA_HOME"
    alias jv8="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_8 $JAVA_HOME"
    # default java version,
    alias jvd="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_D $JAVA_HOME"
    alias jv="java -version"
  • টার্মিনালে, source ~/.bashrc পরিবর্তনগুলি কার্যকর করতে।
  • তারপরে সংজ্ঞায়িত কমান্ড ব্যবহার করে স্যুইচ করতে পারে।

কমান্ড - উপরের কনফিগার থেকে

আদেশগুলি:

  • jv11
    জাভা 11 এ স্যুইচ করুন
  • jv8
    জাভা 8 এ স্যুইচ করুন
  • jvd
    ডিফল্ট জাভা সংস্করণে স্যুইচ করুন, যা _E_JAVA_HOME_Dউপরোক্ত সংজ্ঞায়িত দ্বারা চিহ্নিত করা হয়েছে।
  • jv
    জাভা সংস্করণ দেখান।

উদাহরণ আউটপুট:

eric@eric-pc:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

eric@eric-pc:~$ jv11
eric@eric-pc:~$ jv
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

eric@eric-pc:~$ jvd
eric@eric-pc:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

eric@eric-pc:~$ 

পদ্ধতি

  • এটি নরম লিঙ্কটি পরিবর্তন করে পরিবর্তিত হয়, যা হিসাবে ব্যবহৃত হয় JAVA_HOME

পরামর্শ

  • আমার মেশিনে যখন হাত দ্বারা জেডিকে ইনস্টল করা হয়, তখন আমি ছোটখাটো সংস্করণ রাখি, তারপরে বড় সংস্করণটি দিয়ে তবে একটি ছোট সংস্করণ ছাড়াই একটি নরম লিঙ্ক তৈরি করি।
    যেমন
    // এটি আসল দির,
    jdk1.8.0_191

    // এটি একটি নরম লিঙ্ক jdk1.8.0_191
    jdk-8

    // এটি একটি নরম লিঙ্ক jdk-8বাjdk-11
    java

  • আমি কমান্ড ওরফে সংজ্ঞায়িত করেছি ~/.bashrc, তবে একটি পৃথক ফাইলের মধ্যে ভেরিয়েবল সংজ্ঞায়িত করেছি।
    আমি ~/.eric_varভেরিয়েবলগুলি সংজ্ঞায়িত করতে ব্যবহার করছি এবং ~/.bashrcএটি উত্স তৈরি করবে (উদাঃ source $HOME/.eric_var)।


1

প্রদত্ত তালিকায় পৃথকভাবে ইনস্টল করা জেডিকে অন্তর্ভুক্ত করার একটি সহজ উপায় /usr/libexec/java_home -Vহ'ল ডিরেক্টরিটিকে সিমলিংক করা:

sudo ln -s path/to/jdk /Library/Java/JavaVirtualMachines/jdk-[some-identifier].jdk

উদাহরণস্বরূপ, অ্যান্ড্রয়েড স্টুডিওতে অন্তর্ভুক্ত জেডিকে নিবন্ধিত করতে (লেখার সময় 1.8.0_152), ব্যবহার করুন:

sudo ln -s /Applications/Android\ Studio.app/Contents/jre/jdk /Library/Java/JavaVirtualMachines/jdk-android-studio.jdk

এখন java_homeজেডিকে নীচে তালিকাবদ্ধ করবে Matching Java Virtual Machinesএবং আপনি উপরে বর্ণিত হিসাবে এটি নির্বাচন করতে পারেন।


1

আমি স্থানীয় টার্মিনালের সাথে এটি করেছি

export JAVA_8_HOME=(/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/)
export JAVA_13_HOME=(/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home/)

alias java8='export JAVA_HOME=$JAVA_8_HOME; alias java="$JAVA_8_HOME/bin/java"; $JAVA_8_HOME/bin/java -version'
alias java13='export JAVA_HOME=$JAVA_13_HOME; alias java="$JAVA_13_HOME/bin/java"; $JAVA_13_HOME/bin/java -version'

export JAVA_HOME=$JAVA_13_HOME

0

এই সরঞ্জামটি আপনার জন্য কাজ করবে:

http://www.guigarage.com/2013/02/change-java-version-on-mac-os/

এটি একটি সরল জাভাওন যা বর্তমান জাভা সংস্করণ সংজ্ঞায়িত করতে ব্যবহার করা যেতে পারে। এই সংস্করণটি শেলটিতে ব্যবহার করা যেতে পারে যা সরঞ্জামে কোনও সংস্করণ নির্বাচনের পরে খোলা হয়।


-6

খুব সহজ সমাধান: মাথা ব্যথা কি - এটি ছিল একটি দ্রুত সহজ সমাধান যা আমার পক্ষে কাজ করে।

ম্যাক ওএস সিয়েরা সংস্করণ 10.12.13

  1. শর্টকাট কীগুলি ব্যবহার করুন: সিএমডি + শিফট + জি - "/ লাইব্রেরি /" টাইপ করুন

  2. জাভা ফোল্ডারটি সন্ধান করুন

  3. জাভা ফোল্ডারে ডান ক্লিক করুন = ট্র্যাশে সরান (পাসওয়ার্ড প্রয়োজন)

  4. ইনস্টল করুন: জাভা এসই বিকাশ কিট 8 jdk-8u131-macosx-x64.dmg | জাভাস্ক্রিপ্ট এসডিকে ডাউনলোড করুন

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