ক 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
ছাড়াই কোনও পরিবেশে সজ্জিত হনfile
grep
> 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