সমস্ত ব্যবহারকারীর জন্য লিনাক্সে কীভাবে JAVA_HOME সেট করবেন


182

আমি লিনাক্স সিস্টেমে নতুন এবং এখানে অনেকগুলি জাভা ফোল্ডার রয়েছে বলে মনে হচ্ছে।

জাভা-রূপান্তর আমাকে দেয়:

  • জাভা সংস্করণ "1.7.0_55"
  • ওপেনজেডিকে রানটাইম এনভায়রনমেন্ট (রেল -২.৪..7.১.এল __5-x86_64 u55-b13)
  • ওপেনজেডিকে 64-বিট সার্ভার ভিএম (24.51-বি03, মিশ্র মোড তৈরি করুন)

যখন আমি একটি মাভেন প্রকল্প তৈরির চেষ্টা করছি তখন আমি ত্রুটি পাচ্ছি:

Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/java/jdk1.7.0_05/bin/java

আপনি দয়া করে আমাকে বলতে পারবেন যে আমাকে রুটগুলির পাশাপাশি রুট নয় এমন ব্যবহারকারী এবং মূলত জাভা কোথায় অবস্থিত?

উত্তর:


350
  1. find /usr/lib/jvm/java-1.x.x-openjdk
  2. vim /etc/profile

    সুবিধাপ্রাপ্ত ব্যবহারকারী হিসাবে লগ ইন থাকলে sudo প্রস্তুত করুন, যেমন। sudo vim

  3. সন্নিবেশ মোডে পেতে 'i' টিপুন
  4. যোগ করুন:

    export JAVA_HOME="path that you found"
    
    export PATH=$JAVA_HOME/bin:$PATH
    
  5. লগআউট করুন এবং আবার লগইন করুন, পুনরায় বুট করুন বা source /etc/profileআপনার বর্তমান শেলটিতে তত্ক্ষণাত পরিবর্তনগুলি প্রয়োগ করতে ব্যবহার করুন

29
ডাবল উদ্ধৃতি মুছতে এবং আপনার কীবোর্ড থেকে সেগুলি পুনরায় তৈরি করতে ভুলবেন না কারণ কেবল অনুলিপি করা এবং আটকানো ঝামেলা তৈরি করতে পারে।
সুনীল কুমার

12
@ আরবালেকসন্দর কিছু অ্যাপ্লিকেশন নির্ভর করে JAVA_HOME, এটি সেট আপ করতেও ক্ষতি করে না।
রাফিয়ান

2
ইন্টেলিজিজ এমন একটি অ্যাপ্লিকেশন - এবং কোনও গৌণ নয়।
পিট

12
source /etc/profileপরিবর্তনগুলি তত্ক্ষণাত কার্যকর হওয়ার জন্য আপনাকে দৌড়াতে হবে!
মোহাম্মদ তাহের আলরেফেই

1
এটি আমাকে সঠিক দিকে ইঙ্গিত করেছিল। /etc/profile.d/jdk.shআমার সিস্টেমে আসলে বাসি এক ভাসমান ছিল ।
হারমান

107

সমস্ত ব্যবহারকারীর জন্য, আমি নিম্নলিখিত লাইনটি ভিতরে রাখার পরামর্শ দেব /etc/profile

export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")

এটি গতিশীলভাবে আপডেট হবে এবং বিকল্প সিস্টেমের সাথে ভালভাবে কাজ করবে । যদিও আপডেটটি কেবলমাত্র একটি নতুন লগইন শেলের মধ্যে স্থান নেবে তা নোট করুন।


10
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")পরিবর্তে কেবল সরল জেআরই (এমনকি মাথাহীন) ব্যবহারের সাথে সম্মতি জানাতে - খেয়াল করুন যে আমি ঠিক ব্যবহার করি java, নাjavac
রোমান কৃগলভ

@ ককুলতা কমপক্ষে মাভেন জেভিএহোমকে একটি জেডিকে নির্দেশ করবে এবং জাভা সংকলকটি সনাক্ত করতে এটি ব্যবহার করে exp
ইয়েরো অ্যালটনেন

1
readlinkসামঞ্জস্যপূর্ণ সমাধানের জন্য আপগেট করুন এবং আপডেট করুন / আপগ্রেড করুন, এমনকি এটি একটি 5 বছরের পুরানো থ্রেড। আমি কেবলমাত্র / ইত্যাদি / প্রোফাইল সম্পাদনা না করার পরামর্শ দিই, তবে আপনার রফতানিটি কাস্টম ফাইলের মধ্যে /etc/profile.d/java_environment.shরাখি , যেমন আপনাকে হয়ত আবার চালু করতে হবে chmod +x java_environment.sh
ক্রিস্টোফস

পারফেক্ট। আমার dirnameআড়ম্বরপূর্ণ সমাধানের চেয়ে ভাল than আপনি যদি আমার মতো হন এবং এখানে কী চলছে তা বুঝতে চান, এটি খালি স্ট্রিংয়ের সাথে ইনপুট থেকে মেলা পাঠ্যের একটি সহজ প্রতিস্থাপন। প্রতিস্থাপনের জন্য "ডিফল্ট" চরিত্রটি হ'ল /, তবে যতক্ষণ আপনি সামঞ্জস্য /বজায় রাখেন ততক্ষণ আপনি কোনও কিছু দিয়ে প্রতিস্থাপন করতে পারেন । এক্ষেত্রে এটি কলোন যেমন আমরা /পথ বিভাজকগুলির জন্য ব্যবহার করি ।
Ungeheuer

35

আপনি / ইত্যাদি / প্রোফাইল বা /etc/profile.d/jdk_home.sh এর মতো আরও ভাল ফাইল ব্যবহার করতে পারেন

export JAVA_HOME=/usr/java/jdk1.7.0_05/

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


1
কমপক্ষে আমার লিনাক্সে (রাস্পবিয়ান), / ইত্যাদি / প্রোফাইল উত্স করবে /etc/profile.d/*.shযাতে আপনার ফাইলটি কল করা দরকার jdk_home.shতাই এটি
সস

ধন্যবাদ @ হিলিকাস :-) আমি সে অনুযায়ী এটি পরিবর্তন করেছি।
ফ্ল্যাব করুন

2
ধন্যবাদ. আমি উভয় বিশ্বের সেরা জন্য আপনার এবং @
ইরোর উত্তরটির মিশ্রণ করেছি

1
এটি সেরা উত্তর
Jacob:

/etc/profile.d/jdk_home.shহয় আরো অনেক কিছু পরিষ্কার উত্তর, জন্য অন্তত উবুন্টু , /etc/profileএত যুক্তি দিয়ে ইতিমধ্যে clumped করা হয়। এটিতে আরও যুক্ত করা বুদ্ধিমান বলে মনে হয় নি ...
এনজি সেক লং

30

অন্য কোনও উত্তর আমার কাছে আরএইচইএল 7-তে "স্টিকিং" ছিল না, এমনকি সেট করা JAVA_HOMEএবং PATHসরাসরি কাজ করা /etc/profileবা ~/.bash_profileকাজ করবে না। প্রতিবার আমি JAVA_HOMEসেট করা আছে কিনা তা খতিয়ে দেখার চেষ্টা করার পরে এটি ফাঁকা হয়ে আসবে:

$ echo $JAVA_HOME
    (<-- no output)

আমাকে যা করতে হয়েছিল তা এখানে একটি স্ক্রিপ্ট সেট আপ করা হয়েছিল /etc/profile.d/jdk_home.sh:

#!/bin/sh
export JAVA_HOME=/opt/ibm/java-x86_64-60/
export PATH=$JAVA_HOME/bin:$PATH

প্রথমদিকে আমি প্রথম লাইনটিকে (অব #!/bin/sh) উপেক্ষা করেছি এবং এটি ছাড়া এটি কাজ করবে না।

এখন এটি কাজ করছে:

$ echo $JAVA_HOME
/opt/ibm/java-x86_64-60/

আমি আরএইচইএল on এ একই অভিজ্ঞতা পেয়েছি I / .Bash_profile থেকে রফতানি সরিয়ে আমি এই পদ্ধতির ব্যবহার করেছি।
xpagesbeast

#! / বিন / শ আপনার জেডি কে_হোম.এসএসের প্রয়োজন নেই। একবার আপনি কনফিগারেশনটি সম্পন্ন করে লগআউট এবং আবার লগইন করার বিষয়টি নিশ্চিত করুন
কুহাজায়ান

12

লিনাক্সে কোনও পথ নির্ধারণ করা খুব সহজ। নিম্নলিখিত হিসাবে করুন:

পদক্ষেপ -১ টার্মিনালটি ওপেন করুন এবং টাইপ করুন sudo gedit .bashrc

পদক্ষেপ -২ এটি আপনাকে আপনার পাসওয়ার্ড জিজ্ঞাসা করবে। পাসওয়ার্ড টাইপ করার পরে এটি ব্যাশ ফাইলটি খুলবে। তারপরে প্রান্তে যান এবং নীচে টাইপ করুন

ধাপ 3

   export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
   export PATH=$PATH:$JAVA_HOME/bin

পদক্ষেপ -4 তারপরে ফাইলটি সংরক্ষণ করুন এবং ফাইলটি থেকে প্রস্থান করুন

উপরে একক ব্যবহারকারীর জন্য রয়েছে। সমস্ত ব্যবহারকারীর জন্য আপনাকে নীচের পদক্ষেপগুলি অনুসরণ করতে হবে

ধাপ 1 gedit /etc/profile

ধাপ ২ export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"

ধাপ 3 export PATH=$PATH:$JAVA_HOME/bin

আশাকরি এটা সাহায্য করবে. ধন্যবাদ!


2
এই উত্তরটি কেবলমাত্র বর্তমান ব্যবহারকারীর জন্য সেট করে।
ম্যানুয়েল মানহার্ট

আপনাকে ধন্যবাদ @ লইকার
পাইডেভসআরএস

7

ওরাকল যা করেন তা করা (একজন প্রাক্তন সান কর্মচারী হিসাবে আমি তার সাথে অভ্যস্ত হতে পারি না)

ln -s সর্বশেষ জাভা রিলেজ / ইউএসআর / জাভা / ডিফল্ট
যেখানে সর্বশেষতম জাভাআরেইলিজ আপনি যে সংস্করণটি ব্যবহার করতে চান তা হ'ল

তারপরে JAVA_Home = / usr / java / default রফতানি করুন


6

উত্তরটি দেওয়া হয়েছে পূর্ববর্তী পোস্টগুলি বৈধ। তবে একটি উত্তর শ্রদ্ধার সাথে সম্পূর্ণ নয়:

  1. কেবলমাত্র কারণে (/ ইত্যাদি / প্রোফাইলে বর্ণিত) কারণে / ইত্যাদি / প্রোফাইল পরিবর্তন করার সুপারিশ করা হয় না:
  • আপনি কী করছেন তা যদি না জানেন তবে এই ফাইলটি পরিবর্তন করা ভাল ধারণা নয়। আপনার পরিবেশে কাস্টম পরিবর্তন করতে /etc/profile.d/ এ একটি কাস্টম.শ শেল স্ক্রিপ্ট তৈরি করা আরও ভাল, কারণ এটি ভবিষ্যতের আপডেটগুলিতে মার্জ হওয়ার প্রয়োজনীয়তা রোধ করবে *
  1. সুতরাং উপরে বর্ণিত হিসাবে কাস্টম পরিবর্তনের জন্য /etc/profile.d/custom.sh ফাইল তৈরি করুন।

  2. এখন, জাভার নতুন সংস্করণ ইনস্টল হওয়ার সাথে সর্বদা আপডেট রাখার জন্য কখনই পরম পথ রাখবেন না, পরিবর্তে ব্যবহার করুন:

# জাভা হোম হিসাবে জেডিকে তৈরি করছে

JAVA_Home = $ রফতানি করুন (রিডলিঙ্ক -f / usr / বিন / জাভাক | সেড "গুলি: / বিন / জাভাক ::")

অথবা

# জাভা বাড়ির মতো জের তৈরি করছে

JAVA_Home = $ রফতানি করুন (রিডলিঙ্ক -f / usr / বিন / জাভা | সেড "গুলি: / বিন / জাভা ::")

  1. এবং মনে আছে #! কাস্টম.শ ফাইলটিতে / বিন / বাশ

4

আপনার ইনস্টল করা বিন ফাইলের পাথটি অনুলিপি করুন

YOUR PATH

টার্মিনালটি খুলুন এবং নীচের কমান্ডটি টাইপ করে পরিবেশ ফাইল সম্পাদনা করুন,

sudo nano /etc/environment

এই ফাইলে, নিম্নলিখিত লাইনটি যুক্ত করুন ( YOUR_PATHকেবল অনুলিপি করা রাস্তা দ্বারা প্রতিস্থাপন ):

JAVA_HOME="YOUR_PATH"

পরিবেশের পরিবর্তনশীল সেট করার জন্য এটি যথেষ্ট হওয়া উচিত। এখন এই ফাইলটি পুনরায় লোড করুন:

source /etc/environment

এখন এটি সম্পাদন করে পরীক্ষা করুন:

echo $JAVA_HOME

3
ওল্নি বর্তমান টার্মিনাল সেশনটির প্রভাব ফেলছে
ফাতেহ টার্কার

@ ফাতিহাটকার আপনার পিসি রিবুট করুন
জ্যাক গিফিন

আমার জন্য jdk11 ব্যবহার করার জন্য, আপনার_পথটি হ'ল/usr/lib/jvm/default-java/
জ্যাক গিফিন

2

লিনাক্সে আমি এই লাইনটি আমার ~ /। প্রোফাইলগুলিতে যুক্ত করি:

export JAVA_HOME=$(readlink -ze /usr/bin/javac | xargs -0 dirname -z | xargs -0 dirname)

2
এটি একটি সম্ভাব্য সঠিক উত্তর বলে মনে হচ্ছে তবে আপনি কেন এটি কাজ করে তা ব্যাখ্যা করতে পারেন , অর্থাত এটি কী করে এবং ওপির সমস্যাটি কী? এছাড়াও, আপনি "লিনাক্সে" বলছেন, তবে অনেকগুলি লিনাক্স ডিস্ট্রো রয়েছে এবং এটি তাদের সকলের জন্য কার্যকর নাও হতে পারে, দয়া করে যুক্ত করুন যার জন্য এটি কাজ করে।
বুড়ম্যান

2

পদক্ষেপ 1 - "প্রতিধ্বনি $ জাভাহোম" দ্বারা বর্তমান জাভা সংস্করণটি পরীক্ষা করুন

পদক্ষেপ 2 - vim / ইত্যাদি / প্রোফাইল

পদক্ষেপ 3 - ফাইলের শেষে আপনি JAVA_HOME রফতানির সন্ধান পাবেন, আমাদের এখানে নতুন পথ সরবরাহ করা দরকার, এটি নিশ্চিত করে নিন যে এটি আপেক্ষিক নয়।

পদক্ষেপ 4 - সংরক্ষণ করুন এবং প্রস্থান: ডাব্লিউকিউ

পদক্ষেপ 5 - "উত্স / ইত্যাদি / প্রোফাইল /", এটি পরিবর্তনটি কার্যকর করবে

পদক্ষেপ Step - আবার একটি প্রতিধ্বনি করুন $ জাভাহোম - পরিবর্তন প্রতিফলিত হত।


2

সংক্ষিপ্ত কাটা 1 ... ব্যবহার Ctlr+ + Alt+ + Tখোলা টার্মিনালে

2 ... নীচের আদেশটি কার্যকর করুন:

echo export JAVA_HOME='$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")' | sudo tee /etc/profile.d/jdk_home.sh > /dev/null

3 ... (প্রস্তাবিত) আপনার ভিএম / কম্পিউটার পুনরায় চালু করুন। source /etc/sourceকম্পিউটার পুনরায় চালু করতে না চাইলে আপনি ব্যবহার করতে পারেন

সংক্ষিপ্ত কাটা 4 ... ব্যবহার Ctlr+ + Alt+ + Tখোলা টার্মিনালে

5 ... যাচাই করা হয়েছে JAVA_HOME কিস্তি সহ

echo $JAVA_HOME

ফ্লাব থেকে ওয়ান-লাইনারের অনুলিপি , তাদের জমা দিন



1

একটি নতুন লগইন ব্যবহারের জন্য সংরক্ষণ করার জন্য আপনি যে কোনও প্রোফাইল সম্পাদনা করুন সম্ভবত উত্সাহ দেওয়া ভাল ধারণা।

হয়: উত্স / ইত্যাদি / বা। জন্য / etc /

আপনি যেই প্রোফাইল সম্পাদনা করেছেন তা কোথায়।


1

যখন আমরা জাভাএহোম সেট করতে চলেছি, আমাকে জাভাএহোম বা অন্য কোনও পরিবেশের পরিবর্তনশীল সেট করার কিছু সুবিধা ভাগ করে নেওয়া যাক:

1) আপনার অ্যাপ্লিকেশন স্টার্টআপ এবং কনফিগারেশন ফাইলটিকে প্রভাবিত না করে জেডিকে আপগ্রেড করা সহজ যা জাভাহোমকে নির্দেশ করে। আপনাকে কেবল নতুন সংস্করণ ডাউনলোড করতে হবে এবং জাভা এর নতুন সংস্করণে আপনার জাভাওয়াহোম পয়েন্টগুলি নিশ্চিত করতে হবে। পরিবেশের পরিবর্তনশীল বা লিঙ্কগুলি ব্যবহার করে এটি সেরা সুবিধা।

2) জেভিএহোম ভেরিয়েবলটি জেডিকে ইনস্টলেশন ডিরেক্টরিটির সম্পূর্ণ পথের পরিবর্তে সংক্ষিপ্ত এবং সংক্ষিপ্ত।

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

আরও পড়ুন: http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-en वातावरण-in.html#ixzz4BWmaYIjH


1

সমস্যাটি সমাধান করার জন্য এটি একটি খুব সাধারণ স্ক্রিপ্ট

export JAVA_HOME_BIN=`which java`
export JAVA_HOME_DIR=`dirname $JAVA_HOME_BIN`
export JAVA_HOME=`dirname $JAVA_HOME_DIR`

এবং পরীক্ষার জন্য:

echo $JAVA_HOME

1

উত্তর হিসাবে পোস্ট, আমার মতামত মতামত না।

লক্ষ করার বিষয় : "সেই ডেভ গাই" পোস্ট করা স্বীকৃত উত্তর অনুসরণ করুন।

ভেরিয়েবলগুলি সেট করার পরে, আপনি যে জাভা ডিরেক্টরিটি ইনস্টল করেছেন সেখানে যথাযথ অনুমতি সেট করেছেন তা নিশ্চিত করুন।

chmod -R 755 /usr/java

1

সমস্ত কার্যক্ষম পদক্ষেপ (জাভা, পিতা মাতার সন্ধান, ফাইল সম্পাদনা, ...) এক সমাধান

zFileProfile="/etc/profile"
zJavaHomePath=$(readlink -ze $(which java) | xargs -0 dirname | xargs -0 dirname)
echo $zJavaHomePath

echo "export JAVA_HOME=\"${zJavaHomePath}\"" >> $zFileProfile
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> $zFileProfile

ফলাফল:

# tail -2 $zFileProfile
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64"
export PATH=$PATH:$JAVA_HOME/bin

ব্যাখ্যা:

1) আসুন পুরো কমান্ডটি টুকরো টুকরো করে ফেলুন

$(readlink -ze $(which java) | xargs -0 dirname | xargs -0 dirname)

2) জাভা কমান্ড থেকে জাভা পথ সন্ধান করুন

# $(which java)
"/usr/bin/java"

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

# readlink -ze /usr/bin/java
"/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/java"

4) পিতামাতার পথ পান /usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/java

# readlink -ze /usr/bin/java | xargs -0 dirname
"/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin"

5) পিতামাতার পথ পান /usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/

# readlink -ze /usr/bin/java | xargs -0 dirname | xargs -0 dirname
"/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64"


0

sudo লিখতে kafka-run-class.sh খুলুন

আপনি আপনার কাফকা ফোল্ডারে kafka-run-class.sh খুঁজে পেতে পারেন : কাফকা / বিন / কাফকা- রুন-class.sh

এই লাইন জন্য পরীক্ষা করুন

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

অন্য জাভা জাভা ভেরিয়েবলটি সংশোধন করুন আপনার জাভা / বিনে এক্সিকিউটেবল জাভাটির দিকে ইঙ্গিত করতে। জাভা এর মত = "A জাভাআহোম / জাভা"


0

/ ইত্যাদি / প্রোফাইলে, আপনি এটি খুললে আপনি জানতে পারবেন যে এই ফাইলটিতে আইটি লেখার জন্য কোনও প্রস্তাব দেওয়া হয়নি। এর পরিবর্তে আপনার কমান্ডগুলির একটি স্ক্রিপ্ট তৈরি করুন (ধরুন test.sh) /etc/profile.d ফোল্ডারে যান এবং সেখানে test.sh রাখুন। প্রতিবার আপনি পুনরায় বুট করার সময় এটি / etc / প্রোফাইল দ্বারা স্বয়ংক্রিয়ভাবে কল হবে।


-1

আমি লাইনটি ব্যবহার করি:

export JAVA_HOME=$(readlink -f $(dirname $(readlink -f $(which java) ))/../)

আমার ~ /। প্রোফাইলে তাই লগ ইন করার সময় এটি ডিফল্ট জাভা ডিরেক্টরিটির বেসটি ব্যবহার করে। এটা বাশ জন্য।

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