উত্তর:
এটি আপনার প্যাকেজ সিস্টেম থেকে কিছুটা নির্ভর করে ... javaকমান্ডটি যদি কাজ করে তবে আপনি readlink -f $(which java)জাভা কমান্ডের অবস্থান সন্ধান করতে টাইপ করতে পারেন । ওপেনসুএস সিস্টেমে আমি এখন ফিরে আসছি /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/bin/java(তবে এটি এমন কোনও সিস্টেম নয় যা ব্যবহার করে apt-get)।
উবুন্টুতে, দেখে মনে হচ্ছে এটি /usr/lib/jvm/java-6-openjdk/ ওপেনজেডিকে এবং /usr/lib/jvm/সানস জেডিকে-র জন্য অন্য কোনও উপ-ডিরেক্টরিতে (এবং অন্যান্য বাস্তবায়নও, আমি মনে করি)।
যে কোনও প্রদত্ত প্যাকেজের জন্য আপনি নির্ধারণ করতে পারবেন এটি কোন ফাইল ইনস্টল করে এবং কোথায় সেগুলি ডিপিকেজি কোয়েরি করে ইনস্টল করে। উদাহরণস্বরূপ, 'ওপেনজেডক -6-জেডিকে' প্যাকেজটির জন্য:dpkg -L openjdk-6-jdk
/usr/lib/jvm/java-7-openjdk-amd64।
readlink -f $(which javac) - একই মেশিনে জেডিকে এবং জেআরইয়ের এক অদ্ভুত মিশ্রণের ক্ষেত্রে 'সি' নোট করুন। জেডিকে একটি সংকলক (জাভাক) অন্তর্ভুক্ত এবং একটি জেআরই নেই। তবে যদি পথটি সঠিক না হয়, যা ব্যর্থ হবে এবং আপনি এটি ব্যবহার করতে পারেন: find /usr/java -wholename '*ava/jdk*' -pruneআমি নীচে একটি মন্তব্যে নোট করেছি।
update-java-alternatives -l
কোন জাভা বাস্তবায়ন আপনার সিস্টেমে ডিফল্ট এবং ফাইল সিস্টেমে এটি কোথায় ইনস্টল করা হবে তা আপনাকে বলবে। আরও বিকল্পের জন্য ম্যানুয়ালটি পরীক্ষা করুন।
apt-getএবং ডিস্ট্রো হওয়া উচিত Debian 2.6.26। আফাইক, এটি সমস্ত ডিবিয়ান ডেরিভেটিভগুলির জন্য একই হওয়া উচিত।
$ which java
তোমার মতো কিছু দেওয়া উচিত
/usr/bin/java
readlink -f $(which javac)এটি প্রিন্ট করে /usr/lib/jvm/java-8-oracle/bin/javac। এই বিন ফোল্ডারটি জেডিকে নয়। জেনারেল অ্যাসিড-বেস পরীক্ষা এটির কোনও জেডিকে স্রোতের $JAVA_HOMEকোনও পাথ রয়েছে কিনা তা দেখার জন্য lib/tools.jar। এর অভিনেতার ক্ষেত্রে /usr/lib/jvm/java-8-oracle/binএটি সত্য নয়, সুতরাং এটি জেডিকে নয়।
find /usr/java -wholename '*ava/jdk*' -prune তবে আচরণটি নির্ভর করে যে আপনি ওপেনজেডিকে বা ওরাকল জাভা সম্পর্কে কথা বলছেন এবং এটি প্রথম স্থানে কীভাবে ইনস্টল হয়েছিল।
এই প্রশ্নটি সরানো হবে তবে আপনি নিম্নলিখিতটি করতে পারেন
which javac
অথবা
cd /
find . -name 'javac'
এটি চিহ্নিত করতে ব্যবহার করুন। এটি /usrকোথাও অধীনে থাকা উচিত :
find /usr -name java
কমান্ডটি চালনার সময়, যদি সেখানে প্রচুর "অনুমতি অস্বীকার" বার্তা থাকে তবে প্রকৃত প্রাপ্ত ফলাফলগুলি বিস্মৃত হয়, কেবল স্টাডারকে / dev / null এ পুনঃনির্দেশ করুন
find /usr -name java 2> /dev/null
জাভা ফোল্ডার পাথের সন্ধানের আর একটি সেরা উপায় হ'ল alternativesফেডোরা লিনাক্স-এ কমান্ড ব্যবহার করা (আমি এটি উবুন্টুর জন্য জানি তবে আমি গুগল থেকে এই পোস্টটি কেবল তার শিরোনামটি দিয়েছি)। ফেডোরা স্বাদে উত্তর খুঁজতে চাইলে কেবল আমার মতো লোকদের ভাগ করে নিতে চাই।
জাভা সম্পর্কিত সমস্ত তথ্য প্রদর্শন করতে
alternatives --display java
তিনটি পদক্ষেপ প্রক্রিয়া: প্রথম: ওপেন টার্মিনাল-> $ whereis java
এটি এর ফলাফল দেয়:
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz
দ্বিতীয়:
ls -l /usr/bin/java
এটি এভাবে আউটপুট দেবে:
lrwxrwxrwx 1 root root 22 Feb 9 10:59 /usr/bin/java -> /etc/alternatives/java
তৃতীয়:
ls -l /etc/alternatives/java
আউটপুট হল জেডিকে পাথ:
lrwxrwxrwx 1 root root 46 Feb 9 10:59 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
সহজ, চেষ্টা করুন:
এটি / ইউএসআর / স্থানীয় / জাভা / জেডিকে [সংস্করণ]
এই প্রশ্নটি এখনও প্রাসঙ্গিক বলে মনে হচ্ছে এবং উত্তরটি চলমান লক্ষ্য বলে মনে হচ্ছে।
আমার ডিবিয়ান সিস্টেমে (বুস্টার):
> update-java-alternatives -l
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
তবে, আপনি যদি সত্যিই সেখানে যান তবে দেখতে পাবেন ভবিষ্যতের রক্ষণাবেক্ষণকে সহজ করার জন্য প্যাকেজ সিস্টেমের দ্বারা একাধিক ডিরেক্টরি এবং প্রতীকী লিঙ্ক রয়েছে।
আসল ডিরেক্টরিটি হ'ল এর java-11-openjdk-amd64আরও একটি সিমলিংক default-java। একটি openjdk-11ডিরেক্টরি রয়েছে, তবে এটিতে কেবল একটি উত্স.জিপ ফাইল রয়েছে বলে মনে হয়।
এটি দেওয়া, কেবলমাত্র দেবিয়ানদের জন্য, আমি অনুমান করব যে ব্যবহারের সর্বোত্তম মানটি হ'ল এটি /usr/lib/jvm/default-javaসর্বদা বৈধ হওয়া উচিত, এমনকি আপনি জাভাটির সম্পূর্ণ ভিন্ন সংস্করণ ইনস্টল করার সিদ্ধান্ত নেন এমনকি এমনকি বিক্রেতাদেরও স্যুইচ করেন।
পাথটি জানার স্বাভাবিক কারণ হ'ল কিছু অ্যাপ্লিকেশন এটি চায় এবং আপনি সম্ভবত সেই অ্যাপ্লিকেশনটি ভাঙ্গতে চান না কারণ আপনি একটি আপগ্রেড করেছেন যা সংস্করণ সংখ্যা পরিবর্তন করেছে।
ওপেনসুএস 13.1 / 13.2 তে এর: /usr/lib64/jvm/java-1.6.0-openjdk-(version-number)
সংস্করণ নম্বরটি 1.7.x 1.8.x হতে পারে ইত্যাদি আপনি ইনস্টল করা সফ্টওয়্যার ম্যানেজার ডাইনি সংস্করণ পরীক্ষা করুন ...
আঁদ্রে
লিনাক্স ফেডোরা 30-তে সম্পূর্ণ জাভা জেডিকের বেশ কয়েকটি সংস্করণ উপলব্ধ রয়েছে, বিশেষত প্যাকেজের নাম:
java-1.8.0-openjdk-devel.x86_64
java-11-openjdk-devel.x86_64
একবার ইনস্টল হয়ে গেলে এগুলিতে পাওয়া যায়: /usr/lib/jvm
পূর্ণ বিকাশের জেডিকে (যা সহজ রানটাইম কেবল জেআরই থেকে আলাদা) এর অবস্থান / ডিরেক্টরি নির্বাচন করতে প্রবেশের সন্ধান করুন:
ls -ld java*openjdk*
এখানে দুটি ভাল পছন্দ রয়েছে, যা নির্দিষ্ট সংস্করণগুলির লিঙ্ক, যেখানে আপনাকে সংস্করণটি নির্বাচন করতে হবে:
/usr/lib/jvm/java-1.8.0-openjdk
/usr/lib/jvm/java-11-openjdk
এই আদেশটি কার্যকর করাই আমার পক্ষে সবচেয়ে ভাল উপায়:
$(dirname $(readlink $(which javac)))/java_home