জেআরই বা জেডিকে ইনস্টল করা আছে কীভাবে তা বলবেন


134

আমার একটি কম্পিউটার রয়েছে যা আমি ইচ্ছাকৃতভাবে জেডিকে ইনস্টল করেছি। জেআরই-এর সাথে আমার আরও একটি কম্পিউটার রয়েছে, কারণ অন্যান্য বিষয়গুলির মধ্যেও পরীক্ষা হচ্ছে। যাইহোক, যখন আমি এই কম্পিউটারে কাজ করে একটি জাভা অ্যাপ্লিকেশন পেয়েছি এবং তারপরে অন্যটিতে এটি চেষ্টা করেছি, তখন এটি অভিযোগ করেছিল যে জেডিকে প্রয়োজন। জেডি কে আমার সিস্টেমে কোনওভাবে ইনস্টল করা আছে কিনা তা আমি কীভাবে পরীক্ষা করতে পারি? দ্রষ্টব্য: প্রশ্নযুক্ত কম্পিউটারটি একটি ম্যাক।


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

এটি একটি বন্ধু কম্পিউটার ছিল - কমান্ড লাইন সরঞ্জামগুলি ইনস্টল করার বিষয়ে কিছু। আবার পরীক্ষা করার সুযোগ পেলে আমি আবার মন্তব্য করব।
পপকার্নেল

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

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

উত্তর:


159

আপনি টার্মিনাল খুলতে এবং সহজভাবে টাইপ করতে পারেন

java -version // this will check your jre version
javac -version // this will check your java compiler version if you installed 

এটি আপনাকে সিস্টেমে ইনস্টল করা জাভা সংস্করণটি দেখাবে (ধরে নিলে আপনি সিস্টেমের পরিবেশে জাভাটির পথ নির্ধারণ করেছেন)।

এবং যদি আপনার না থাকে তবে এটির মাধ্যমে যুক্ত করুন

export JAVA_HOME=/path/to/java/jdk1.x

এবং আপনি যদি নিশ্চিত না হন যে আপনার সিস্টেমে জাভা আছে তবে কেবলমাত্র findটার্মিনালে ব্যবহার করুন

অর্থাত find / -name "java"


1
@ ম্যাসিজেচিগান, কেন আমার জাভাহোম জেডিকে পরিবর্তে একটি জেআরইয়ের দিকে ইঙ্গিত করছে?
পেসারিয়ার

@ পেসারিয়ার কেন ?? আমি এটা নিশ্চিত জানি না! আপনি জেডিকে ইনস্টল না করে থাকতে পারেন? উইন্ডো বা লিনাক্স চালানো ??
ম্যাকিয়েজ সিগান 21

@ ম্যাসিজেজিগান, আমি উইন্ডোজ ব্যবহার করছি। হ্যাঁ, আমি একটি জেডিকে ইনস্টল করেছি।
পেসারিয়ার

@ পেসারিয়র আপনার পরিবেশগত ভেরিয়েবলের ভিতরে - যদি না পাওয়া যায় তবে আপনি সম্পাদনা / বা একটি এন্ট্রি করতে পারেন।
ম্যাকিয়েজ সাইগান

@ ম্যাসিজেজিগান, হ্যাঁ, তবে কেন আমার জাভাহোম জেডিকে পরিবর্তে একটি জেআরইয়ের দিকে ইঙ্গিত করছে?
পেসারিয়ার

18

সাধারণত একটি জেডিকে ইনস্টলেশন পরিবেশের পথের ভেরিয়েবলগুলিতে জাভাক থাকে ... সুতরাং আপনি যদি জাভ্যাকটি পরীক্ষা করে দেখেন তবে এটি খুব ভাল একটি সূচক যে আপনার একটি জেডিকে ইনস্টল রয়েছে।


3
আমি বুঝতে পারি যে ওপি একটি ম্যাক সম্পর্কে জিজ্ঞাসা করেছিল, তাই এটি অন্যরকম হতে পারে। তবে উইন্ডোজ হিসাবে, এই পরীক্ষাটি নির্ভরযোগ্য বলে মনে হয় না। আমি কেবল যাচাই করেছি, এবং javacআমার পথে নেই, তবে আমার কাছে একটি জেডিকি ইনস্টল আছে। (আমার ক্ষেত্রে, আমার জাভা_হোমটিকে নির্দেশ করা হয়েছে C:\Program Files\Java\jdk1.8.0_45)
22-18

হ্যাঁ, আপনি ঠিক কারণ হলেন জাভ্যাক আসলে% জাভাহোম% \ বিনে অবস্থিত
হামেদ

6

@ ম্যাকিয়েজ-সাইগান প্রক্রিয়াটি ভালভাবে বর্ণনা করেছেন, তবে আপনার জাভা পথটি খুঁজে পেতে:

$ which java

এটি আপনাকে javaবাইনারি ফাইলের পথ দেয় যা /usr/binডিরেক্টরিতে একটি লিঙ্কযুক্ত ফাইল । পরবর্তী:

$ cd /usr/bin/ && ls -la | grep java

নীচের মতো কিছু হিসাবে চিহ্নিত পয়েন্টযুক্ত অবস্থানটি সন্ধান করুন (আমার জন্য):

এখানে চিত্র বর্ণনা লিখুন তারপরে cdজাভা জন্য আসল হোম ডিরেক্টরি সন্ধান করতে পয়েন্ট ডিরেক্টরিতে। পরবর্তী:

$ ls -la | grep java

যা এই ক্ষেত্রে নিম্নরূপ:

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

এটি যেমন স্ক্রিনশটে স্পষ্ট, আমার জাভা হোম ডিরেক্টরিটি /usr/lib/jvm/java-11-openjdk-amd64। সুতরাং সেই অনুযায়ী আমি (আমার ব্যাশ প্রোফাইল JAVA_HOME যোগ করতে হবে .bashrc, .bash_profileনিচের মত আপনার OS উপর নির্ভর করে, ইত্যাদি):

JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

এই যে!


0

জাভা ডকুমেন্টেশন অনুসারে, জেডিকে এই পথে ইনস্টল করা উচিত:

/Library/Java/JavaVirtualMachines/jdkmajor.minor.macro[_update].jdk

আনইনস্টল করা জেডিকে অংশটি দেখুন Https://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html

সুতরাং আপনি যদি এই জাতীয় ফোল্ডারটি সন্ধান করতে পারেন তবে জেডিকে ইনস্টল করা আছে


0

একটি সাধারণ, খাঁটি জাভা সমাধান ..

উইন্ডোজ এবং ম্যাকোসের জন্য, নিম্নলিখিতগুলি বেশিরভাগ সময় অনুমান করা যায় ...

public static boolean isJDK() {
    String path = System.getProperty("sun.boot.library.path");
    if(path != null && path.contains("jdk")) {
        return true;
    }
    return false;
}

তবে ... লিনাক্স এ এটি নির্ভরযোগ্য নয় ... উদাহরণস্বরূপ ...

  • লিনাক্সের অনেক জেআরই openjdkপথ রয়েছে contain
  • জেআরইতে জেডিকেও নেই এমন কোনও গ্যারান্টি নেই।

সুতরাং আরও কার্যকর ব্যর্থতার পক্ষে javacঅ্যাক্সেসযোগ্যের অস্তিত্ব পরীক্ষা করা নিরাপদ পদ্ধতি ।

public static boolean isJDK() {
    String path = System.getProperty("sun.boot.library.path");
    if(path != null) {
        String javacPath = "";
        if(path.endsWith(File.separator + "bin")) {
            javacPath = path;
        } else {
            int libIndex = path.lastIndexOf(File.separator + "lib");
            if(libIndex > 0) {
                javacPath = path.substring(0, libIndex) + File.separator + "bin";
            }
        }
        if(!javacPath.isEmpty()) {
            return new File(javacPath, "javac").exists() || new File(javacPath, "javac.exe").exists();
        }
    }
    return false;
}

সতর্কতা: এটি জেআরই + জেডি কে কম্বোসগুলির জন্য এখনও ব্যর্থ হবে যা জেআরই'র প্রতিবেদন করেsun.boot.library.path মধ্যে জেরির অনুরূপ । উদাহরণস্বরূপ, উপরের কোডটি চালিত হলে ফেডোরার জেডিকে ব্যর্থ হবে (বা আপনি এটি কীভাবে দেখুন তার উপর নির্ভর করে)। আরও তথ্যের জন্য নীচে ইউনিট পরীক্ষা দেখুন ...

ইউনিট পরীক্ষা:

# Unix
java -XshowSettings:properties -version 2>&1|grep "sun.boot.library.path"
# Windows
java -XshowSettings:properties -version 2>&1|find "sun.boot.library.path"
    # PASS: MacOS AdoptOpenJDK JDK11
    /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/lib

    # PASS: Windows Oracle JDK12
    c:\Program Files\Java\jdk-12.0.2\bin

    # PASS: Windows Oracle JRE8
    C:\Program Files\Java\jre1.8.0_181\bin

    # PASS: Windows Oracle JDK8
    C:\Program Files\Java\jdk1.8.0_181\bin

    # PASS: Ubuntu AdoptOpenJDK JDK11
    /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib

    # PASS: Ubuntu Oracle JDK11
    /usr/lib/jvm/java-11-oracle/lib

    # PASS: Fedora OpenJDK JDK8
    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.fc24.x86_64/jre/lib/amd64

    #### FAIL: Fedora OpenJDK JDK8
    /usr/java/jdk1.8.0_231-amd64/jre/lib/amd64

0

প্রশ্নে থাকা কম্পিউটারটি একটি ম্যাক।

কেবলমাত্র একটি ম্যাকোস সমাধান:

/usr/libexec/java_home -v 1.8+ --exec javac -version

1.8+জাভা যেখানে 1.8 বা উচ্চতর।

দুর্ভাগ্যক্রমে, java_homeসহায়ক সঠিক রিটার্ন কোডটি সেট করে না, সুতরাং ব্যর্থতার জন্য যাচাইয়ের জন্য আউটপুট (উদাহরণস্বরূপ 2>&1 |grep -v "Unable") পার্সিং করা দরকার যা লোকেলের ভিত্তিতে পরিবর্তিত হয়।

দ্রষ্টব্য, জাভাতেও থাকতে পারে /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin, তবে এটি লেখার সময়, আমি এমন কোনও জেআরই সম্পর্কে অবগত নই যা সেখানে উপস্থিত রয়েছে যা ইনস্টল করে javac

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