সেন্টোসের জন্য জাভাহোমের মান কত?


37

আমি সেন্টোজে ইয়ামের মাধ্যমে জাভা ইনস্টল করেছি, তবে অন্য জাভা প্রোগ্রামটির জাভাআহোম পরিবেশগত পরিবর্তনশীল কী তা জানতে হবে। পরিবেশগত ভেরিয়েবল সেট করার বিষয়ে আমি সব জানি, তবে আমি এটিতে কী সেট করব? javaইনস্টল করা আছে /usr/bin/java, এটি সেখানে থাকতে পারে না!

উত্তর:


54

আসলে আমি এটি পেয়েছি,

এটা /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/। এটি করার মাধ্যমে আমি এটি আবিষ্কার করেছিলাম update-alternatives --display javaএবং এটি আমাকে ডিরেক্টরি দেখিয়েছিল/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java


20

আমি বেশ নিশ্চিত নই তবে আপনি যদি সাধারণ আরপিএম ইনস্টল করেন তবে জাভাওহোম মানটিও এতে সেট করা যেতে পারে:

/usr/java/default/

সম্পাদনা: আমি সবেমাত্র আমার হোম সিস্টেম পরীক্ষা করেছি। আমি এই ফাইলটি তৈরি করেছি:

/etc/profile.d/java.sh

ধারণকৃত:

export JAVA_HOME=/usr/java/default/

এবং আমি সান থেকে অফিসিয়াল সংস্করণ ব্যবহার করছি: jdk-1.6.0_12-fcs

সম্পাদনা: আমি এখানে আমার মেশিনে জাভা সেট আপ করব :

জাভা ইনস্টল করুন

ওরাকল থেকে জাভা জেডিকে ডাউনলোড এবং ইনস্টল করুন

এটি প্রাথমিক করুন

নিম্নলিখিত দুটি কমান্ড ব্যবহার করে ওপেনজেডকে সংস্করণের পরিবর্তে এই জাভাটি ব্যবহার হয়েছে তা নিশ্চিত করুন:

প্রথম

alternatives --install /usr/bin/java java /usr/java/default/bin/java 999999 \
           --slave /usr/bin/keytool keytool /usr/java/default/bin/keytool \
           --slave /usr/bin/rmiregistry rmiregistry /usr/java/default/bin/rmiregistry

দ্বিতীয়

alternatives --install /usr/bin/javac javac /usr/java/default/bin/javac 999999 \
           --slave /usr/bin/jar jar /usr/java/default/bin/jar \
           --slave /usr/bin/rmic rmic /usr/java/default/bin/rmic

জাভাআহোম সেট করুন

নিশ্চিত হয়ে নিন যে সমস্ত ব্যবহারকারীর তাদের JAVA_HOME পরিবেশের পরিবর্তনশীল সঠিক মানটিতে সেট হয়েছে:

echo "export JAVA_HOME=/usr/java/default/" > /etc/profile.d/java_home.sh

ওহ আকর্ষণীয়। :)
ররি

1
কোন ব্যাপার /usr/java/defaultআমার সেন্টওএস মধ্যে OpenJDK 1.6 এবং 1.7 6 বক্স ইনস্টল করা নেই।
ড্যানিয়েল সেরোদিও

পুনঃটুইট আমি স্পষ্টভাবে "ওরাকল থেকে জাভা জেডিকে ডাউনলোড করুন এবং ইনস্টল করুন" বর্ণনা করেছি এবং তারপরে এটি বিদ্যমান।
নীল বাসজেস

2

আপনি জেডিএ বা জেআরই এর মূল অবস্থান হিসাবে JAVA_Home সেট করতে চান, উদাহরণস্বরূপ:

export JAVA_HOME=/usr/java/jdk1.3

যদি জেডিকে (ডেভলপমেন্ট কিট) ইনস্টল করা থাকে তবে ypu সম্ভবত এটি নির্দেশ করতে চায় অন্যথায় জেআরই পথ (জাভা রানটাইম এনভায়রনমেন্ট) ব্যবহার করুন। তারপরে, আপনি বিন ডিরেক্টরি অন্তর্ভুক্ত করতে আপনার AT PATH পরিবেশ পরিবর্তনশীল সেট করতে চাইতে পারেন:

export PATH=$PATH:/usr/java/jdk1.3/bin

আপনি যদি টমক্যাট ব্যবহার করছেন তবে আপনাকেও টমক্যাট ব্যবহারকারীর জন্য ক্যাটালিনহোম সেট করতে হবে।

export CATALINA_HOME=/path/to/tomcat

সিস্টেমের জন্য এটি সেট করতে আপনি আপনার / ইত্যাদি / প্রোফাইল সম্পাদনা করতে চান বা /etc/profile.d ফোল্ডারে একটি .sh ফাইল যুক্ত করতে চান। কোনও নির্দিষ্ট ব্যবহারকারীর জন্য আপনি এটি ব্যবহারকারী /। / প্রোফাইলে বা ~ / .bash_profile ফাইলগুলিতে রাখতে পারেন।


আমি অবাক হয়েছি যে সুপার ব্যবহারকারী হিসাবে চালিত হওয়ার জন্য ইনস্টলটি এটি আপনার পক্ষে না করে এমন কোনও ভাল কারণ আছে, আমি সর্বদা এটি বিরক্তিকর মনে করি ...
কাইল ব্র্যান্ড্ট

2

নীচে সর্বদা আমার জন্য নিখুঁতভাবে কাজ করছে:

[user@base ~]$ locate bin/java
/usr/bin/java
/usr/bin/javac
/usr/bin/javadoc
/usr/bin/javaws
/usr/java/jdk1.6.0_31/bin/java
/usr/java/jdk1.6.0_31/bin/javac
/usr/java/jdk1.6.0_31/bin/javadoc
/usr/java/jdk1.6.0_31/bin/javah
/usr/java/jdk1.6.0_31/bin/javap
/usr/java/jdk1.6.0_31/bin/javaws
/usr/java/jdk1.6.0_31/jre/bin/java
/usr/java/jdk1.6.0_31/jre/bin/java_vm
/usr/java/jdk1.6.0_31/jre/bin/javaws

এর অর্থ আমি জাভাহোহোমকে /usr/java/jdk1.6.0_31 হিসাবে সেট করতে পারি


1

আমি যদি জাভাটির সংস্করণটি এর সাথে ব্যবহার হচ্ছে তবে এটির সমস্যাটি বিবেচনা করেছি:

alternatives --config java

তারপরে যে কোনও হার্ড কোডেড JAVA_HOMEপরিবর্তন করতে চলেছে (এটি বর্তমানে সেন্টোস 6.6 এ আমি দেখছি on যে, নেই /usr/java

এটি সেরা পদ্ধতির মতো মনে হচ্ছে না (ব্যর্থতার জন্য উন্মুক্ত) তবে 10 মিনিটের মধ্যে আমি এটি ব্যয় করেছি এটি সেরা বলে মনে হয়।

ইন /etc/bashrcআমি সেটিং সংশোধন JAVA_HOMEহতে হবে:

export JAVA_HOME=$(alternatives --display java | grep current | sed 's/link currently points to //' | sed 's|/bin/java||')

আপনাকে ম্যাকোএসএক্সে অনুরূপ কিছু করতে হবে তবে সমস্ত কিছু ছাড়াই grepএবং sedফলাফলটি বিশ্লেষণ করতে। অবশ্যই alternativesএকটি অনুরূপ সহজ সমাধান প্রস্তাব।

যাইহোক আমি আশা করি আমি সাহায্য করেছি।


হালনাগাদ

না যে হবে JRE_HOME। জেডিকে / এসডিকে তেমন সুস্পষ্ট প্রমাণিত হচ্ছে না (আমি সন্ধান করবো)।

alternativesডিফল্ট হিসাবে শুধুমাত্র JRE সম্পর্কে মনে করা হয়। আমি @ নীলস উত্তরটি মুলতুবি করেছি বা জাভা ইনস্টল yumকরে জাভাআহোমকে সেট করেছি (ট্রিকটি আমি যেখানে খুঁজে পেয়েছি সেখানে ইনস্টল করা হয়েছিল!)।

yum install java-1.8.0-openjdk-devel.x86_64
cd /usr/lib/jvm 

আমি লক্ষ্য করেছি java_1.8.0যে /etc/alternatives/java_sdk_1.8.0এটিতে একটি সিমিলিংক রয়েছে এবং তাই আমার $ জাভাহোমকে এতে সেট করুন /usr/lib/jvm/java_1.8.0। ইন /etc/bashrc


0

অদ্ভুতরূপে, JAVE_HOM পরিবেশগত পরিবর্তনশীল হওয়ার পুরো বিষয়টি হ'ল আপনাকে অবশ্যই প্রতিটি প্রোগ্রামের পাথ নির্দিষ্ট করতে হবে না, এটি এই চলকটি অনুসন্ধান করে এই পথটি পেতে পারে।

যে কোনও উপায়ে, জাভাহোমের পরিবেশগত পরিবর্তনশীল সন্ধানের সঠিক উপায়টি প্রতিধ্বনি ব্যবহার করা:

[root@host ~]# echo $JAVA_HOME
/usr/java/j2sdk1.4.2_09

এই কমান্ডটি চালানো কমান্ড লাইন থেকে আপনি যে সংস্করণটি চালিয়ে যাচ্ছেন তা নির্ধারণ করে না display


2
ভেরিয়েবল সেট করা হয়নি।
ররি

0

পুনরায়: Centos7, /etc/java/java.conf ফাইলটি পড়ুন।

এটিতে জাভাএহোম নিম্নলিখিত দিরের মধ্যে অবস্থিত বলে চিহ্নিত করা হয়েছে: / usr / lib / jvm / java

আমি পরীক্ষা করে দেখেছি, এটি যে জেডিকে আমি ইউমের মাধ্যমে লোড করেছি এটির সঠিক সংস্করণ এবং তাই ...

আমার এনভির ডিফল্টরূপে JAVA_Home সেট নেই, তাই আমি এটি .Bash_profile এ সেট করেছি


0

আমি প্যাকেজ ম্যানেজারটি বিভিন্ন স্থানে দেখতে পেলাম, সুতরাং যা ব্যবহার করে (কোনও ধারক ব্যবহার করে আপনাকে স্পষ্টভাবে এটি ইনস্টল করতে হবে) নীচে সামান্য কম ভঙ্গুর রয়েছে

javaCompiler=$(which javac)
javaBin=$(dirname $(readlink -f $javaCompiler))
javaHome=${javaBin%/*}
export JAVA_HOME=$javaHome

বা জেআরই এর জন্য

javaExec=$(which java)
javaBin=$(dirname $(readlink -f $javaExec))
javaHome=${javaBin%/*}
export JRE_HOME=$javaHome
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.