আমি ম্যাকস এক্স 10.6 এ জাভাআহোম পরিবেশের পরিবর্তনশীলটি কী সেট করব?


436

অনেক জাভা অ্যাপ্লিকেশন যা শেল স্ক্রিপ্টগুলি তাদের পরিবেশ কনফিগার করতে ব্যবহার করে তারা JAVA_HOMEজাভাটির সঠিক সংস্করণ শুরু করতে, জেআরই জারগুলি সনাক্ত করতে এবং আরও অনেকগুলি জন্য পরিবেশ পরিবর্তনশীল ব্যবহার করে।

ম্যাকোস এক্স 10.6 এ, নিম্নলিখিত পথগুলি এই চলকটির জন্য বৈধ বলে মনে হচ্ছে

/Library/Java/Home
/System/Library/Frameworks/JavaVM.framework/Home
/System/Library/Frameworks/JavaVM.framework/Versions/Current

এর মধ্যে কয়েকটি আসল বর্তমান ভিএম-এর প্রতীক (জাভা পছন্দসই ফলকে সংজ্ঞায়িত))

তবে কোনটি ব্যবহার করা উচিত — বা এগুলির কোনওটি ব্যবহার করা কি ঠিক?


উত্তর:


849

আমি কেবলমাত্র JAVA_HOMEসেই কমান্ডের আউটপুট সেট করেছি , যা আপনার জাভা পছন্দগুলিতে নির্দিষ্ট করা জাভা পাথ আপনাকে দেয়। আমার .bashrcফাইল থেকে একটি স্নিপেট এখানে দেওয়া হয়েছে যা এই পরিবর্তনশীলটিকে সেট করে:

export JAVA_HOME=$(/usr/libexec/java_home)

আমি এই কৌশলটি নিয়ে কোনও সমস্যা পাইনি।

মাঝে মাঝে আমাকে জাভাটির JAVA_HOMEপূর্ববর্তী সংস্করণে মান পরিবর্তন করতে হবে । উদাহরণস্বরূপ, আমি যে প্রোগ্রামটি বজায় করছি তার জন্য ওএস এক্সে 32-বিট জাভা 5 প্রয়োজন, সুতরাং সেই প্রোগ্রামটি ব্যবহার করার সময়, আমি JAVA_HOMEচালিয়ে সেট করেছিলাম :

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

java_homeআপনার পথে যাদের নেই তাদের জন্য এটি এটিকে যুক্ত করুন।

sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home /usr/libexec/java_home

তথ্যসূত্র :


20
মাউন্টেন সিংহ এটিও রয়েছে
শিল gh

57
এখনও মাভেরিক্সের জন্য বৈধ
পাস্কাল

42
এখনও ইয়োসেমাইটের জন্য বৈধ। ;)
জিওফ্রে ওয়াইজম্যান 20

42
এল ক্যাপ্টেন। পরীক্ষা করে দেখুন!
gattshjoty

11
এখনও
মোজাবের

40

এছাড়াও, জেডিকে প্রতিফলিত করার জন্য আপনার পাঠ্য সেট করা আকর্ষণীয়। জাভাএহোম যোগ করার পরে (যা 'মিপাডি' দ্বারা উদ্ধৃত উদাহরণ দিয়ে করা যায়):

export JAVA_HOME=$(/usr/libexec/java_home)

প্রোফাইলে of /। এ যুক্ত করুন:

export PATH=${JAVA_HOME}/bin:$PATH

পিএস: ওএসএক্সের জন্য, আমি সাধারণত .bashrc এর পরিবর্তে হোম ডায়ারে। প্রোফাইলটি ব্যবহার করি


ওএসএক্স চলমান ডিফল্ট ব্যাশে, আমি সাধারণত ব্যাশ ব্যবহার করি .bash_profile- আপনি জেনেরিকের চেয়ে কেন ব্যবহার করেন .profile?
লিগি

1
যেহেতু .profileজেনেরিক, এটা সঙ্গে কাজ করবে shবা bash, যখন .bash_profileএকচেটিয়া হয় bash। এছাড়াও এটি .bash_profileপছন্দ মতো অ্যাপ্লিকেশনগুলি থেকে সেটিংসকে পৃথক করে MacPorts। তবে আপনি দুটির মধ্যে যে কোনও একটিটিকে নিরাপদে ব্যবহার করতে পারেন। এটি সম্পর্কে এখানে
লুকাসারুদা

1
- এফওয়াইআই, আপনি যে লিঙ্কটি সরবরাহ করেছেন তা আমার সন্দেহের সত্যতা নিশ্চিত করে যে বাশের অধীনে (যেমন ডিফল্টরূপে) .bash_profileওভাররাইড ব্যবহার করা হবে .profile
লিগি

@ লিগি হ্যাঁ, এবং এটি তা করে কারণ .bash_profileএটি নির্দিষ্ট, যেখানে .profileসাধারণ, সমস্ত shপ্রকারের জন্য is
লুকাসারুদা

1
যেহেতু ওএস / এক্স javaআপনার সাথে একটি লিঙ্ক রাখে /usr/binসেখানে স্পষ্টভাবে $JAVA_HOMEআপনার পথে যুক্ত করার দরকার নেই ।
জ্যাক

20

আমার ম্যাক ওএস এক্স (সিয়েরা) 10.12.2 রয়েছে

আমি নীচের পদক্ষেপগুলি অনুসরণ করে জাএভিএহোমকে প্রতিক্রিয়া নেটিভ (অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির জন্য) এ কাজ করার জন্য সেট করেছি

  • টার্মিনাল খুলুন (কমান্ড + আর, টাইপ টার্মিনাল, হিট ENTER)।

  • নিম্নলিখিত লাইনগুলিকে ~ / .bash_profile এ যুক্ত করুন export JAVA_HOME=$(/usr/libexec/java_home)

  • এখন নিম্নলিখিত কমান্ড চালান। source ~/.bash_profile

  • আপনি নীচের কমান্ডটি টাইপ করে জাভা_হোমের সঠিক মান পরীক্ষা করতে পারেন । echo $JAVA_HOME

প্রত্যাশিত মান (আউটপুট) নীচের মতো হবে। /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

এটাই.


এটি সহায়ক, ধন্যবাদ। তবে আমি বিশ্বাস করি যে আপনি শেষ পদক্ষেপটিও মিস করেছেন, যা পরে জাভাআহোমকে .bashrc / .Bash_profile / .zshrc / ইত্যাদিতে প্রত্যাবর্তিত মান হিসাবে সেট করছে Please দয়া করে আমার ভুল হয়ে থাকলে আমাকে সংশোধন করুন।
দ্য প্রলেটারিয়েট

2
এটি প্রয়োজন হয় না। আমার ক্ষেত্রে, $JAVA_HOMEবোঝায় $(/usr/libexec/java_home)এবং $(/usr/libexec/java_home) অভ্যন্তরীণভাবে হিসেবে উল্লেখ করা হয়েছে /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Homeসিস্টেম দ্বারা।
হাইগুল

1
বুঝেছি. এটা আমার ক্ষেত্রে প্রয়োজন ছিল। ধন্যবাদ।
দ্য প্রলেটারিয়েট

13

আমি ম্যাক ওএস 10.6.8 এ আছি

আমার পক্ষে সবচেয়ে সহজ সমাধানটি সহজভাবে .োকানো হয়েছে

$ export JAVA_HOME=$(/usr/libexec/java_home)

এটি কাজ করে কিনা তা পরীক্ষা করতে, প্রবেশ করান

$ echo $JAVA_HOME

এটা দেখায়

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

আপনি পরীক্ষা করতে পারেন

$ which java


9

আমি ব্যবহার করার ঝোঁক /Library/Java/Home। পছন্দগুলি ফলকটি যেভাবে কাজ করে তা আপনার পছন্দসই সংস্করণটির সাথে আপডেট হওয়া উচিত।


/ বিন এবং পরীক্ষা করুন যে এটি / লাইব্রেরি / জাভা এবং / সিস্টেম / লাইব্রেরি / ..কে নির্দেশ করে যে এটি পুরানো হতে পারে।
জেআরুন

1
এটি আর সঠিক নয়। ওএস এক্স 10.5 এবং তারপরে, পথটি সন্ধান করতে / usr / lixec / java_home ব্যবহার করুন।
ক্রিস্টোফার জনসন

8

উপরের গ্রাফিকাল অ্যাপ্লিকেশনগুলির জন্য YOSEMITE এ আর কোনও কাজ করে না! গ্রহণের মতো, বা স্পটলাইট দিয়ে শুরু হওয়া কোনও কিছুই। (.bash_profile ,unchd.conf শুধুমাত্র টার্মিনাল সেশনের জন্য কাজ করে)) গ্রহপোকন শুরু করার আগে, কেবলমাত্র একটি টার্মিনাল উইন্ডোটি খুলুন, এবং নিম্নলিখিত আদেশটি দিন:

launchctl setenv JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home

(আপনার ইনস্টলেশনের পথের সাথে! সম্ভবত পুরো পথের পরিবর্তে $ (/ usr / lixec / java_home) এর সাথেও কাজ করে))

স্থায়ী সমাধান সম্পর্কে পুরো দুর্দান্ত নিবন্ধটি এখানে দেখুন: লঞ্চডকনফের মাধ্যমে পরিবেশের ভেরিয়েবলগুলি সেট করা আর ওএস এক্স ইয়োসেমাইট / এল ক্যাপিটান / ম্যাকোস সিয়েরায় কাজ করে না?


2

সাহায্যের জন্য আমি এই স্ট্যাকটি পেয়েছি , আমার একই সমস্যা ছিল এবং আমি এটি ঠিক করতে পারি:

আমার জাভা পথটি এখানে ছিল:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

এবং আমার মধ্যে করা প্রয়োজন ছিল .bash_profile:

export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"

সাহায্য আশা করি


2

আপনি অ্যাপ্লিকেশন, স্থায়ী সিস্টেম এনভায়রনমেন্ট ভেরিয়েবল সেট আপের কথা উল্লেখ করার পরে টার্মিনাল সেটআপ এড়িয়ে যাচ্ছেন (ম্যাকস সিয়েরার জন্য কাজ করে; এল ক্যাপিটানের পক্ষেও কাজ করা উচিত):

launchctl setenv JAVA_HOME $(/usr/libexec/java_home -v 1.8)

(এটি জাভাআহোমকে সর্বশেষতম 1.8 জেডিকে সেট করবে, আপনি সার্ভারাল আপডেটগুলি যেমন: জাভাক 1.8.0_101, জাভাক 1.8.0_131 এ যাওয়ার সম্ভাবনা রয়েছে)
অবশ্যই আপনার প্রয়োজন এবং আপনার সিস্টেমের সাথে মানিয়ে নিতে 1.8 থেকে 1.7 বা 1.6 (সত্যই?) পরিবর্তন করুন


1

অন্যান্য উত্তরগুলি নোট হিসাবে, জাভা হোম ডিরেক্টরি সন্ধানের সঠিক উপায়টি হ'ল ব্যবহার করা /usr/libexec/java_home

এটির জন্য অফিসিয়াল ডকুমেন্টেশনগুলি অ্যাপলের প্রযুক্তিগত প্রশ্নোত্তর QA1170 এ রয়েছে: ওএস এক্স-তে গুরুত্বপূর্ণ জাভা ডিরেক্টরিসমূহ : https://developer.apple.com/library/mac/qa/qa1170/_index.html


এটি একটি সদৃশ!
ফ্রাঙ্কলিন ইউ

আমি মনে করি অ্যাপলের অফিশিয়াল ডকুমেন্টেশনের লিঙ্ক অন্তর্ভুক্তি এটিকে অপ্রয়োজনীয় করে তোলে না। তবে যদি তা হয় তবে সঠিক ক্রিয়াটি এটিকে সদৃশ হিসাবে পতাকাঙ্কিত করা, কোনও মন্তব্য করা উচিত নয়।
ক্রিস্টোফার জনসন

আমি একটি মন্তব্য করেছি কারণ আমি উত্তরটিকে সদৃশ হিসাবে চিহ্নিত করতে পারি না । স্ট্যাক ওভারফ্লো কেবল ব্যবহারকারীকে কোনও প্রশ্নটিকে সদৃশ (দুর্ভাগ্যবশত) হিসাবে চিহ্নিত করতে দেয় । লিঙ্কটি সহায়ক, তবে আমি মনে করি বর্তমান উত্তর সম্পর্কে একটি মন্তব্য (বা কেবলমাত্র এটির সাথে সম্পাদনা করুন যেহেতু আপনার ইতিমধ্যে সামর্থ্য রয়েছে) ভাল হবে কারণ এটি একক উত্তরে সমস্ত দরকারী তথ্যকে কেন্দ্রীভূত করে। আমি বিশ্বাস করি যে কোথাও কোনও গাইডলাইন ছিল যে স্ট্যাক ওভারফ্লো নতুন উত্তর লেখার চেয়ে বর্তমান উত্তরগুলি ঠিক করা পছন্দ করে।
ফ্রাঙ্কলিন ইউ

1

আমার কাছে ম্যাভেন .mavenrcফাইলটি কাজ করে বলে মনে করছেন :

echo "export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)" > ~/.mavenrc

আমি নিশ্চিত যে আমি এটিও তুলে নিয়েছি, ঠিক কোথায় আছে তা মনে করতে পারছি না।


1

ফাইল তৈরি করুন ~/.mavenrc

তারপরে এটি ফাইলটিতে আটকান

export JAVA_HOME=$(/usr/libexec/java_home)

পরীক্ষা

mvn -v


আমি এই পদ্ধতির পছন্দ করি, কারণ এটি আমাকে .mavenrc ফাইলের মধ্যে খুব সহজেই জাভা সংস্করণ পরিবর্তন করতে দেয়।
স্পিন্ডিজি

1

নিম্নলিখিত কমান্ডের মাধ্যমে JAVA_Home এনভায়রনমেন্ট ভেরিয়েবল সেট করার আগে ডিফল্ট টার্মিনাল শেলটি পরীক্ষা করার পরামর্শ দেওয়া হয় :

$ echo $SHELL
/bin/bash

যদি আপনার ডিফল্ট টার্মিনালটি / বিন / ব্যাশ (বাশ) হয় তবে আপনার @ হিগল ব্যবহার করা উচিত পদ্ধতিটি

যদি আপনার ডিফল্ট টার্মিনালটি / বিন / zsh (জেড শেল) হয় তবে নিম্নলিখিত পরিবেশের সাথে আপনার এই পরিবেশটি পরিবর্তনশীল ~ / .zshenv ফাইলে সেট করা উচিত :

export JAVA_HOME="$(/usr/libexec/java_home)"

একইভাবে, অন্য কোনও টার্মিনাল ধরণের উপরে বর্ণিত নয়, আপনার তার নিজস্ব টার্মিনাল এনভি ফাইলটিতে পরিবেশ পরিবর্তনশীল সেট করা উচিত।

এই পদ্ধতিটি ম্যাকওস মোজভে সংস্করণ 10.14.6 এ কাজ করার পরীক্ষা করেছে


-1

ফিশ শেল ব্যবহারকারীদের জন্য, নিম্নলিখিতগুলির মতো কিছু ব্যবহার করুন: alias java7 "set -gx JAVA_HOME (/usr/libexec/java_home -v1.7)"

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