লিনাক্স ওপেনজেডিকে দেবিয়ান-ভিত্তিক বিতরণের জন্য জাভা_হোম এনভায়রনমেন্ট ভেরিয়েবলের সঠিক টার্গেটটি কী?


91

উইন্ডোজে, JAVA_HOMEঅবশ্যই জেডিকে ইনস্টলেশন ফোল্ডারে নির্দেশ করতে হবে (যাতে JAVA_HOME/binএতে সমস্ত এক্সিকিউটেবল থাকে এবং JAVA_HOME/libsসমস্ত ডিফল্ট jarলাইব্রেরি থাকে)।

যদি আমি সানের জেডি কে বান্ডিলটি ডাউনলোড করে এটি লিনাক্সে ইনস্টল করি তবে এটি একই পদ্ধতি।

তবে আমার কুবুন্টুর ডিফল্ট ওপেনজেডিকে প্যাকেজটি ব্যবহার করা দরকার। সমস্যাটি হ'ল সমস্ত এক্সিকিউটেবলগুলি এতে স্থাপন করা হয় /usr/bin। জারগুলি কিন্তু রাখা হয় /usr/share/java। যেহেতু তারা একই JAVA_HOMEফোল্ডারের অধীনে নেই আমি গ্রিলস নিয়ে সমস্যায় আছি এবং সম্ভবত অন্যান্য অ্যাপ্লিকেশনগুলির সাথে সমস্যা হবে যা মানক জাভা কাঠামো আশা করে।

  1. যদি আমি ব্যবহার করি:

    JAVA_HOME=/usr
    

    যে কোনও জাভা এক্সিকিউটেবল ব্যবহার করতে চান এমন সমস্ত অ্যাপ্লিকেশন এবং স্ক্রিপ্টগুলি স্ট্যান্ডার্ড পদ্ধতিটি ব্যবহার করতে পারে call $JAVA_HOME/bin/executable। (: Grails আমি পেয়ে করছি উদাহরণ যাইহোক, বয়াম একটি ভিন্ন জায়গায় আছে, তারা সবসময় পাওয়া নেই ClassDefNotFoundজন্য native2ascii)।

  2. অন্যদিকে, আমি যদি ব্যবহার করি:

    JAVA_HOME=/usr/share/java
    

    জাভা এক্সেকিউটেবল (কোনটিই java, javacইত্যাদি) পাওয়া যাবে।

সুতরাং, JAVA_HOMEডেবিয়ান-ভিত্তিক লিনাক্সে চলকটি পরিচালনা করার সঠিক উপায় কী?

আপনার সহায়তার জন্য ধন্যবাদ, লুইস

উত্তর:


98

অবশেষে আমার জন্য যা কাজ করেছে (গ্রিলগুলি এখন সুচারুভাবে কাজ করে) প্রায় স্টিভ বি এর মতোই কাজ করছে:

JAVA_HOME=/usr/lib/jvm/default-java

এই পদ্ধতিটি যদি ব্যবহারকারী সিস্টেমের জন্য ডিফল্ট জেডিকে পরিবর্তন করে তবে JAVA_HOMEএখনও কাজ করে।

default-java বর্তমান জেভিএম-এর একটি সিমিলিংক।


6
দেখে মনে হচ্ছে ডেবিয়ান 7

4
আরএইচইল 5.10-তে, এটি / ইউএসআর / লিবিব / জেভিএম / জাভা
ব্রায়ান

4
আমি / usr / lib / jvm / java-7-openjdk-amd64
র্যান্ডাল বোহান

ওরাকল লিনাক্স 7 এর জন্য ( এটি সেন্টোস এবং আরএইচইএল-তে প্রযোজ্য হওয়া উচিত ) আমি /etc/profile.d/java.sh নামে একটি ফাইল তৈরি করেছি এবং নিম্নলিখিতটি দিয়ে এটি পপুলিটেড করেছি: জাভাআহোমোম = / usr / lib / jvm / jre-openjdk এক্সপোর্ট JAVA_Home রি-সোর্সিংয়ের পরে / ইত্যাদি / প্রোফাইল (চলমান উত্স / ইত্যাদি / প্রোফাইল দ্বারা) জেভিএহোম প্রত্যাশিতভাবে জনবহুল হয়েছিল।
darnold0714

80

আপনি যদি একাধিক জাভা সংস্করণ পরিচালনা করতে বিকল্প ব্যবহার করেন তবে আপনি JAVA_HOMEএই জাতীয় অনুরূপ জাভা (বা জাভাক) এর উপর ভিত্তি করে সেট করতে পারেন :

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

4
এটি আমার জন্য কাজ করে: জাভাআহোম = $ (পঠন লিঙ্ক -f / usr / বিন / জাভা | সেড "গুলি: / জেআর / বিন / জাভা ::")
ডিপিএনএসান

4
জমকালো সমাধান, জাভাওয়াহোম দিয়ে আমার দীর্ঘ বছরের মাথাব্যথা সমাধান করে, যা বিভিন্ন অপারেটিং সিস্টেমে বিভিন্ন জায়গায় নির্দেশ করে।
ডেটাজেক

4
নোট করুন যে এই চতুর সমাধানটি /usr/bin/javaস্ক্রিপ্টের দিকে ইঙ্গিত করে জেন্টুর মতো ডিস্ট্রোজে কাজ করবে না ( /usr/libexec/eselect-java/run-java-tool.bash)। তবুও, এটি একটি দুর্দান্ত পদ্ধতি। কেবলমাত্র আমি পরিবর্তন করতে চাই তাড়াতাড়ি এড়াতে sedJAVA_HOME=$( j=$( readlink -f /usr/bin/java ) ; echo ${j%%/bin/java} )
বাশের অন্তর্নির্মিত

এটি ভালভাবে কাজ করে :) এতে পরিবর্তন javacআসতে পারে javaকারণ প্রত্যেকে জেডিকে ইনস্টলড করে নি; কেবল
জেআরই

4
@ আলেকিসওয়িলকে এখন জাভকের পরিবর্তে জাভা
বিবাআসসিয়েই

7

স্ট্যান্ডার্ড উবুন্টু ইনস্টলটি বিভিন্ন জাভা সংস্করণগুলিতে রেখে গেছে বলে মনে হচ্ছে /usr/lib/jvmjavac, Java আপনার পাথ আপনাকে খুঁজে এই softlink হবে।

আপনার নিজের জাভা সংস্করণটি আপনার পছন্দ মতো যে কোনও জায়গায় ইনস্টল করার ক্ষেত্রে কোনও সমস্যা নেই, যতক্ষণ না আপনি JAVA_HOMEপরিবেশের পরিবর্তনশীল সেট করেন এবং binআপনার পথে নতুন জাভা রয়েছে তা নিশ্চিত করে নিন।

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

/usr/bin/java --> /opt/jdk/bin/java,

/opt/jdk --> /opt/jdk1.6.011

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

4
দ্রষ্টব্য নোটকারী অনুরোধ করেছে যে তিনি কুবুন্টু ব্যবহার করেছেন, সুতরাং উবুন্টু সমাধানগুলি ঠিক হওয়া উচিত।
জোসেফ হলস্টেন 25:30

0

আমার কাছে সাধারণত কোনও জাভাওহুম এনভায়রনমেন্ট ভেরিয়েবল থাকে না। জাভা এটি সেট আপ করতে পারেন। ভিতরে জাভা জাভা.হোম সিস্টেমের সম্পত্তি পাওয়া উচিত।


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



0

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


0

আপডেট হওয়া উত্তর যা আপনার সমস্যার সমাধান করবে এবং উবুন্টুতে ওরাকল জাভা 7 ইনস্টল করার জন্য একটি সাধারণ ভাল কীভাবে তা এখানে পাওয়া যাবে: http://www.wikihow.com/Install-Oracle-Java-on-Ubuntu-Linux


0

আমি উবুন্টুতে ওপেনজড্ক-6-জে এবং ওপেনজেডক---জে-হেডলেস প্যাকেজগুলির সাথে একই রকম সমস্যা আবিষ্কার করেছি।

আমার সমস্যাটি ওপেনজেডক---জেআর এবং ওপেনজেডক---জে-হেডলেস প্যাকেজগুলি পুনরায় ইনস্টল করে পুনরায় ইনস্টল করে সমাধান করা হয়েছিল। বিকল্পগুলি কেবল ওপেনজেডক---জে এবং ওপেনজেডক---জে-হেডলেস প্যাকেজগুলির একটি নতুন ইনস্টল-এ আপডেট করা হয়।

নীচে পরিষ্কার করার পরে ইনস্টলের একটি নমুনা দেওয়া হল:

aptitude purge openjdk-6-jre openjdk-6-jre-headless # to ensure no configuration exists
aptitude install --without-recommends openjdk-6-jre # Installing without some extras
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
The following NEW packages will be installed:
  ca-certificates-java{a} java-common{a} libavahi-client3{a} libavahi-common-data{a} libavahi-common3{a} libcups2{a} libflac8{a} libgif4{a} libnspr4-0d{a} libnss3-1d{a} libogg0{a} libpulse0{a} libsndfile1{a} libvorbis0a{a} libvorbisenc2{a} libxi6{a} libxtst6{a}
  openjdk-6-jre openjdk-6-jre-headless{a} openjdk-6-jre-lib{a} tzdata-java{a}
The following packages are RECOMMENDED but will NOT be installed:
  icedtea-6-jre-cacao icedtea-netx ttf-dejavu-extra
0 packages upgraded, 21 newly installed, 0 to remove and 119 not upgraded.
Need to get 0B/34.5MB of archives. After unpacking 97.6MB will be used.
Do you want to continue? [Y/n/?]
Writing extended state information... Done
Selecting previously deselected package openjdk-6-jre-lib.
(Reading database ... 62267 files and directories currently installed.)
Unpacking openjdk-6-jre-lib (from .../openjdk-6-jre-lib_6b24-1.11.5-0ubuntu1~10.04.2_all.deb) ...
...
Processing triggers for man-db ...
Setting up tzdata-java (2012e-0ubuntu0.10.04) ...
...
Setting up openjdk-6-jre-headless (6b24-1.11.5-0ubuntu1~10.04.2) ...
update-alternatives: using /usr/lib/jvm/java-6-openjdk/jre/bin/java to provide /usr/bin/java (java) in auto mode.
update-alternatives: using /usr/lib/jvm/java-6-openjdk/jre/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode.
update-alternatives: using /usr/lib/jvm/java-6-openjdk/jre/bin/pack200 to provide /usr/bin/pack200 (pack200) in auto mode.
update-alternatives: using /usr/lib/jvm/java-6-openjdk/jre/bin/rmid to provide /usr/bin/rmid (rmid) in auto mode.
update-alternatives: using /usr/lib/jvm/java-6-openjdk/jre/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode.
update-alternatives: using /usr/lib/jvm/java-6-openjdk/jre/bin/unpack200 to provide /usr/bin/unpack200 (unpack200) in auto mode.
update-alternatives: using /usr/lib/jvm/java-6-openjdk/jre/bin/orbd to provide /usr/bin/orbd (orbd) in auto mode.
update-alternatives: using /usr/lib/jvm/java-6-openjdk/jre/bin/servertool to provide /usr/bin/servertool (servertool) in auto mode.
update-alternatives: using /usr/lib/jvm/java-6-openjdk/jre/bin/tnameserv to provide /usr/bin/tnameserv (tnameserv) in auto mode.
update-alternatives: using /usr/lib/jvm/java-6-openjdk/jre/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode.
Setting up openjdk-6-jre (6b24-1.11.5-0ubuntu1~10.04.2) ...
update-alternatives: using /usr/lib/jvm/java-6-openjdk/jre/bin/policytool to provide /usr/bin/policytool (policytool) in auto mode.
...

উপরে আপনি দেখতে পাচ্ছেন যে update-alternativesবিভিন্ন জাভা বাইনারিগুলির জন্য লিঙ্ক সেট আপ করতে চালিত হয়।

এই ইনস্টলের পরে, প্রতিটি বাইনারি-এর জন্য /usr/binলিঙ্কগুলি, লিঙ্কগুলি /etc/alternativesএবং ফাইলগুলি রয়েছে /var/lib/dpkg/alternatives

ls -l /usr/bin/java /etc/alternatives/java /var/lib/dpkg/alternatives/java
lrwxrwxrwx 1 root root  40 2013-01-16 14:44 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk/jre/bin/java
lrwxrwxrwx 1 root root  22 2013-01-16 14:44 /usr/bin/java -> /etc/alternatives/java
-rw-r--r-- 1 root root 158 2013-01-16 14:44 /var/lib/dpkg/alternatives/java

আসুন এটিকে সংশোধন ছাড়াই ইনস্টল করে কনস্টাস্ট করি।

aptitude remove openjdk-6-jre
aptitude install --without-recommends openjdk-6-jre
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
The following NEW packages will be installed:
  ca-certificates-java{a} java-common{a} libavahi-client3{a} libavahi-common-data{a} libavahi-common3{a} libcups2{a} libflac8{a} libgif4{a} libnspr4-0d{a} libnss3-1d{a} libogg0{a} libpulse0{a} libsndfile1{a} libvorbis0a{a} libvorbisenc2{a} libxi6{a} libxtst6{a}
  openjdk-6-jre openjdk-6-jre-headless{a} openjdk-6-jre-lib{a} tzdata-java{a}
The following packages are RECOMMENDED but will NOT be installed:
  icedtea-6-jre-cacao icedtea-netx ttf-dejavu-extra
0 packages upgraded, 21 newly installed, 0 to remove and 119 not upgraded.
Need to get 0B/34.5MB of archives. After unpacking 97.6MB will be used.
Do you want to continue? [Y/n/?]
Writing extended state information... Done
Selecting previously deselected package openjdk-6-jre-lib.
(Reading database ... 62293 files and directories currently installed.)
Unpacking openjdk-6-jre-lib (from .../openjdk-6-jre-lib_6b24-1.11.5-0ubuntu1~10.04.2_all.deb) ...
...
Processing triggers for man-db ...
...
Setting up openjdk-6-jre-headless (6b24-1.11.5-0ubuntu1~10.04.2) ...

Setting up openjdk-6-jre (6b24-1.11.5-0ubuntu1~10.04.2) ...
...

আপনি দেখতে হিসাবে, update-alternativesট্রিগার করা হয় না।

এই ইনস্টলের পরে, জাভা বাইনারিগুলির জন্য কোনও ফাইল /var/lib/dpkg/alternativesনেই, কোনও লিঙ্ক /etc/alternativesনেই এবং কোনও লিঙ্ক নেই /usr/bin

ফাইলগুলি মুছে /var/lib/dpkg/alternativesফেলাও বিরতি update-java-alternatives


0

উবুন্টু 12.04 এটি কাজ করে ...

জাভাআহোম = / ইউএসআর / লিবিব / জেভিএম / জাভা -6-ওপেনডেডি-আই 386 / জেআর


0

ফেডোরা ব্যবহারকারীর আপডেট হিসাবে, বিকল্পগুলি বর্তমান জাভা ডিরেক্টরিটি / ইউএসআর / জাভা / ডিফল্ট হিসাবে সেট করে

সুতরাং আপনার ক্লাসপথে সর্বদা বিকল্প নিরাময়ের বিকল্প রাখতে আপনাকে আপনার জাভাওয়াহোমাকে / ইউএসআর / জাভা / ডিফল্টতে সেট করতে হবে

এইচটিএইচ!


0

আমি সবসময় অনুযায়ী JAVA_HOME সেট করতে ঝোঁক /usr/bin/java

JAVA_HOME="$(dirname -- "$(dirname -- "$(readlink -f /usr/bin/java)")")"

এইভাবে, উভয় বিকল্প একই অবস্থান নির্দেশ করে


-1

যতদূর আমার মনে আছে, আমি আপডেট-বিকল্পগুলির পরিবর্তে আপডেট-জাভা-বিকল্প স্ক্রিপ্টটি ব্যবহার করেছি। এবং এটি আমার জন্য JAVA_HOME সঠিকভাবে সেট করেছে।


এটি উবুন্টু 20.4 এ নেই
মার্টিন শ্র্রেডার

-1

আপডেট-বিকল্প কমান্ডটি কী করে দয়া করে দেখুন (এটিতে একটি দুর্দান্ত মানুষ রয়েছে ...)।

শীঘ্রই - আপনার জাভা-সূর্য -১.৪ এবং জাভা-ওপেনসোস -১.০ থাকলে কোনটি হয় ... কোনটি "জাভা" নেয়? এটি ডিবিয়ান "/ usr / বিন / জাভা" প্রতীকী লিঙ্ক এবং "/ usr / বিন / java-sun-1.4" "/ usr / বিন / জাভা" এর বিকল্প

সম্পাদনা: রিচার্ড যেমন বলেছিলেন update-alternativesতেমন যথেষ্ট নয়। আপনার আসলে ব্যবহার করা দরকার update-java-alternatives। আরও তথ্য এখানে:

https://help.ubuntu.com/commune/ জাভা


আপডেট-বিকল্পগুলি যথেষ্ট নয়। এটি আপডেট-জাভা-বিকল্পগুলি হওয়া দরকার
রিচিএইচএইচ

@ রিচার্ড: হ্যাঁ, উল্লেখ করা হয়েছে। প্রথমবার যখন আমি এটি নিয়ে গেলাম তখন আমি গুগল করেছিলাম এবং উবুন্টুর ডকুমেন্টেশন পেয়েছি। ধন্যবাদ!
এলকুকো

-2

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

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

(যেহেতু আপনি যখন এটি আপনার পথে নির্দিষ্ট করেন এটি $ জাভহোহোম / বিন) (সুতরাং আপনার ক্ষেত্রে এটি হবে ... V জাভাহোম / শেয়ার এবং $ জাভাহোম / ইউএসআর হবে?)

এহ, এটি ঠিক শোনাচ্ছে না ...

আমিও এর উত্তর শুনতে আগ্রহী!


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