ক jarকেবলমাত্র একটি ধারক। এটি একটি ফাইল সংরক্ষণাগার tar। লা । যদিও jarএর মাইটা-আইএনএফ শ্রেণিবিন্যাসের মধ্যে একটি আকর্ষণীয় তথ্য থাকতে পারে , তবে এর বিষয়বস্তুগুলির মধ্যে ক্লাসগুলির মদ নির্দিষ্ট করার কোনও বাধ্যবাধকতা নেই। তার জন্য, একজনকে অবশ্যই classএতে ফাইলগুলি পরীক্ষা করতে হবে ।
পিটার লরি যেমন মূল প্রশ্নের মন্তব্যে উল্লেখ করেছেন, আপনি জেডিকে কোন রিলিজ একটি প্রদত্ত classফাইল তৈরি করেছেন তা অগত্যা আপনি জানতে পারবেন না , তবে আপনি একটিতে থাকা classফাইলটির বাইট কোড শ্রেণি সংস্করণটি খুঁজে পেতে পারেন jar।
হ্যাঁ, এই ধরণটি সফল হয়, তবে প্রথম পদক্ষেপটি হ'ল এক থেকে একাধিক ক্লাস বের করা jar। উদাহরণ স্বরূপ:
$ jar xf log4j-1.2.15.jar
লিনাক্সে, ম্যাক ওএস এক্স বা সিগুইন সহ উইন্ডোজ ইনস্টল করা হয়েছে, ফাইল (1) কমান্ডটি ক্লাস সংস্করণটি জানে।
$ file ./org/apache/log4j/Appender.class
./org/apache/log4j/Appender.class: compiled Java class data, version 45.3
বা বিকল্পভাবে, javapজেডিকে থেকে @ jike.thunderbolt হিসাবে যথাযথভাবে উল্লেখ করেছেন:
$ javap -v ./org/apache/log4j/Appender.class | grep major
major version: 45
এবং যদি আপনি বা না Windowsছাড়াই কোনও পরিবেশে সজ্জিত হনfilegrep
> javap -v ./org/apache/log4j/Appender.class | findstr major
major version: 45
এফডাব্লুআইডাব্লু, আমি সম্মত javapহব যে কোনও classপ্রশ্ন দেওয়া মূল প্রশ্নটির চেয়ে একটি প্রদত্ত ফাইল সম্পর্কে সম্পূর্ণ আরও অনেক কিছু জানাবে will
যাইহোক, একটি পৃথক শ্রেণীর সংস্করণ, উদাহরণস্বরূপ:
$ file ~/bin/classes/P.class
/home/dave/bin/classes/P.class: compiled Java class data, version 50.0
শ্রেণীর সংস্করণের প্রধান সংখ্যাটি নিম্নলিখিত জাভা জেডিকে সংস্করণের সাথে মিলেছে:
- 45.3 = জাভা 1.1
- 46 = জাভা 1.2
- 47 = জাভা 1.3
- 48 = জাভা 1.4
- 49 = জাভা 5
- 50 = জাভা 6
- 51 = জাভা 7
- 52 = জাভা 8
- 53 = জাভা 9