ডিফল্ট জাভা ইনস্টলেশনটির ক্যাসেরেটসের অবস্থান কীভাবে পাবেন?


92

আমি কীভাবে cacertsডিফল্ট জাভা ইনস্টলেশনটির অবস্থান কীভাবে পেতে পারি তা সন্ধান করছি, যখন আপনার কাছে JAVA_HOMEবা JRE_HOMEসংজ্ঞা নেই।

আমার এমন একটি সমাধান দরকার যা কমপক্ষে OS Xএবং এর জন্য কাজ করে Linux

হ্যাঁ. java -vকাজ অনুমান করা হয় :)

উত্তর:


160

লিনাক্সের অধীনে , এর অবস্থানটি সন্ধান করতে $JAVA_HOME:

readlink -f /usr/bin/java | sed "s:bin/java::"

cacertsঅধীনে আছে lib/security/cacerts:

$(readlink -f /usr/bin/java | sed "s:bin/java::")lib/security/cacerts

রান সন্ধান করতে ম্যাক ওএস এক্স এর অধীনে $JAVA_HOME:

/usr/libexec/java_home

cacertsঅধীনে আছে Home/lib/security/cacerts:

$(/usr/libexec/java_home)/lib/security/cacerts

আপডেট (জেডিকে সহ ওএস এক্স)

উপরের কোডটি জেডিকে ইনস্টল না করে কম্পিউটারে পরীক্ষা করা হয়েছিল। জেডিকে ইনস্টল করার সাথে, পিআর 0 পিএস যেমন বলেছে , এটি এখন

$(/usr/libexec/java_home)/jre/lib/security/cacerts

6
ওএস এক্স-এ, জাভাহোমকে খুঁজে পাওয়ার "অফিসিয়াল" উপায়টি চলছে/usr/libexec/java_home
ড্যানিয়েল সেরোদিও

4
@ ড্যানিয়েলসেরোদিও, একমত হয়েছেন উপরের বেসড কমান্ড /usr/libexec/java_homeথেকে আমাকে একটি আলাদা উত্তর দেয় readlinkএবং পূর্ববর্তীটি সঠিক বলে মনে হয়, এতে এতে cacertsফাইল রয়েছে ।
অ্যান্ড্রু ফেরিয়ার

4
@ ড্যানিয়েলসেরোদিও এবং অ্যান্ড্রুফেরিয়ার ধন্যবাদ বলছি, উত্তর আপডেট হয়েছে।
কুফ

@ কুফ আমার জেডিকে ম্যাক ইয়োসেমাইটে এই লাইব / সুরক্ষা ফোল্ডার নেই। আমি ইতিবাচক যে আমি ডানদিকে আছি $ জাভাহোম
ব্রায়ান

4
ওএসএক্স 10.10.5 এ সুরক্ষা ফোল্ডারটি নীচে রয়েছে: হোম / জে / লিব / সুরক্ষা
সিড সরস্বতী

47

ওএস এক্স 10.10.1 (যোসাইমাইট) হিসাবে, cacertsফাইলটির অবস্থান পরিবর্তন করা হয়েছে

$(/usr/libexec/java_home)/jre/lib/security/cacerts

10

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

TrustManagerFactory trustManagerFactory =
    TrustManagerFactory.getInstance("PKIX");
trustManagerFactory.init((KeyStore) null);
TrustManager[] trustManagers =
    trustManagerFactory.getTrustManagers();
X509TrustManager trustManager =
    (X509TrustManager) trustManagers[0];
X509Certificate[] acceptedIssuers =
    trustManager.getAcceptedIssuers();

সুতরাং আপনাকে ফাইলের অবস্থান বা কীস্টোরের পাসওয়ার্ড নিয়ে কাজ করতে হবে না।


এটি ক্যাসর্টগুলিতে ইনস্টল করা শংসাপত্রটি পড়ছে না। আমি ফাইল পাথ এবং পাসওয়ার্ড ব্যবহার করতে সক্ষম
হচ্ছি

8

MacOS মোজাভেতে, অবস্থানটি হ'ল:

/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/security/cacerts 

যদি জাভা সংস্করণগুলি পরিচালনা করতে sdkman ব্যবহার করা হয় তবে ক্যাসার্টগুলি ভিতরে রয়েছে

~/.sdkman/candidates/java/current/jre/lib/security

4
উল্লেখ্য: W / JDK 11 sdkman বর্তমান সংস্করণ জন্য, অবস্থান হয়~/.sdkman/candidates/java/current/lib/security
Snekse

3

হাই সিয়েরায় , ক্যাসার্টগুলি এখানে অবস্থিত:/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/security/cacerts


1

আপনি রিডলিংক -f " which java" এর সাথেও পরামর্শ করতে পারেন । তবে এটি সমস্ত বাইনারি মোড়কের জন্য কাজ নাও করতে পারে। সম্ভবত জাভা ক্লাস শুরু করা ভাল।

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