একটি জার ফাইলটি ঠিক কী ধারণ করে?


88

ইন্টার্ন হিসাবে, আমি আমার প্রকল্পগুলিতে কোম্পানির কোড ব্যবহার করি এবং তারা সাধারণত আমাকে jarকাজ করার জন্য একটি ফাইল প্রেরণ করে। আমি এটি বিল্ড pathইন এ যুক্ত করি Eclipseএবং সাধারণত সব ঠিকঠাক এবং জঘন্য।

যাইহোক, আমি জানতে আগ্রহী হয়ে উঠলাম, প্রতিটি ক্লাস কী রয়েছে এবং আমি যখন jarফাইলের মধ্যে একটি ক্লাস খোলার চেষ্টা করি তখন এটি আমাকে বলে যে আমার একটি উত্স ফাইল দরকার।

এটার মানে কি? আমি একটি সি / সি ++ ব্যাকগ্রাউন্ড থেকে এসেছি তাই jarইতিমধ্যে সংকলিত .oফাইলের সাথে কি একই রকম এবং আমি দেখতে পাচ্ছি সমস্ত .hজিনিসগুলি কী? অথবা jarফাইলটিতে এমন কোনও কোড রয়েছে যা আমি এনক্রিপ্ট করা ব্যবহার করছি যাতে আমি এটি পড়তে পারি না?

সবগুলো উত্তরের জন্য ধন্যবাদ!

সম্পাদনা:
ধন্যবাদ, ছেলেরা, আমি জানতাম এটি একটি সংরক্ষণাগারটির মতো ছিল কিন্তু আমি যখন .classফাইলগুলি খোলার চেষ্টা করছিলাম তখন আমি কেন বিভ্রান্ত হয়েছিলাম , আমি এলোমেলো অক্ষর পেয়েছি। .oসি-তে একটি ফাইল খোলার চেষ্টা করার পরে আউটপুটটি অনুরূপ ছিল তাই আমি নিশ্চিত হয়েছি।
ধন্যবাদ!




4
@ ব্লু মুন: মজার বিষয় হ'ল গুগল আমাকে এখানে নিয়ে যায়। : পি
ব্যবহারকারী 1036719

@ user1036719 এটি ভাল হলেও আপনি এখানে উত্তরটি পেয়েছেন, এর আগে আরও একটি লিঙ্ক রয়েছে । এবং এটি সত্যই কোনও প্রোগ্রামিং প্রশ্ন নয় যা এসওতে উত্সাহিত করা দরকার। যদিও আমি ভোটকে ডাউনভোট বা নিকট করি নি।
পিপি

উত্তর:


88

একটি জার ফাইলটি আসলে একটি জিপ ফাইল। এটিতে যে কোনও কিছু থাকতে পারে - সাধারণত এটিতে জাভা কোড (* .ক্লাস) সংকলিত থাকে তবে কখনও কখনও জাভা সোর্সকোড (*। জাভা )ও থাকে।

যাইহোক, জাভাটি বিচ্ছেদযোগ্য হতে পারে - যদি বিকাশকারী তার কোডটি অবলম্বন করেন তবে আপনি কোনও কার্যকর শ্রেণি / ফাংশন / ভেরিয়েবলের নাম পাবেন না।


53

যাইহোক, আমি প্রতিটি ক্লাসের মধ্যে কী আছে তা সম্পর্কে কৌতূহল পেয়েছিলাম এবং যখন আমি জার ফাইলটিতে ক্লাসগুলির মধ্যে একটি খোলার চেষ্টা করি, এটি আমাকে বলে যে আমার একটি উত্স ফাইল দরকার।

একটি জার ফাইলটি মূলত একটি জিপ ফাইল যা। ক্লাস ফাইল এবং সম্ভাব্য অন্যান্য সংস্থান (এবং জার নিজেই মেটাডেটা) ধারণ করে। এটা তোলে যেমন জাভা বাইট কোড সবচেয়ে বাইনারি ফরম্যাটের তুলনায় অনেক বেশি মেটাডেটা বজায় রাখে, সত্যিই জাভা সি তুলনা করা কঠিন - কিন্তু ক্লাস ফাইল হয় সোর্স কোডের পরিবর্তে কোড কম্পাইল।

আপনি যদি জিপ ইউটিলিটি দিয়ে জার ফাইলটি খুলেন বা চালান তবে আপনি এগুলি jar xf foo.jarথেকে ফাইলগুলি বের করতে পারেন এবং সেগুলি দেখুন। নোট করুন যে জাভা কোড চালানোর জন্য আপনার কাছে জার ফাইলের দরকার নেই - ক্লাসলোডাররা ক্লাসের ডেটা সরাসরি ফাইল সিস্টেম থেকে বা ইউআরএল থেকে, পাশাপাশি জার ফাইলগুলি থেকে লোড করতে পারেন।


ধন্যবাদ, আমি জানতাম যে এটি কোনও ধরণের আর্কাইভের মতো ছিল যেহেতু আমি এটি আনজিপ করতে পারি তবে আমি বিভ্রান্ত হয়ে পড়েছিলাম কেন। ক্লাস ফাইলগুলির কোনওটিতেই পাঠযোগ্য পাঠ্য নেই। ব্যাখ্যা করার জন্য ধন্যবাদ, আমি অনুমান করি যে একটি ক্লাস একটি .o ফাইলের মতো।
জোশুয়ালান

19

জার ফাইলটি কী তা বোঝার সর্বোত্তম উপায় হ'ল এটি সম্পাদন করে:

কমান্ড লাইনে গিয়ে এক্সিকিউট করুন jar tvf jarfilename.jar


13

একটি jarফাইল হ'ল একটি জিপ ফাইল যা কিছু অতিরিক্ত ফাইলের সাথে মেটাডেটা থাকে। (.Jar এক্সটেনশন সত্ত্বেও, এটি জিপ ফর্ম্যাটে রয়েছে এবং .zip ফাইলগুলির সাথে সম্পর্কিত যে কোনও ইউটিলিটিগুলি .jar ফাইলগুলি মোকাবেলা করতে সক্ষম হয়))

http://docs.oracle.com/javase/8/docs/technotes/guides/jar/index.html

জার ফাইলগুলিতে যে কোনও ধরণের ফাইল থাকতে পারে তবে এগুলিতে সাধারণত ক্লাস ফাইল এবং সমর্থনকারী কনফিগারেশন ফাইল (বৈশিষ্ট্য), গ্রাফিক্স এবং অ্যাপ্লিকেশন দ্বারা প্রয়োজনীয় অন্যান্য ডেটা ফাইল থাকে।

ক্লাস ফাইলগুলিতে জাভা কোড সংকলিত জাভা ভার্চুয়াল মেশিন দ্বারা নির্বাহযোগ্য।

http://en.wikedia.org/wiki/Java_class_file


4
প্লাস 1 কারণ আপনি
মানটির

10

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


5

জার ফাইলটিতে জাভা বাইনারি ক্লাস সংকলিত আকারে রয়েছে *.classযা .javaকিছু ওপেন সোর্স ডেকম্পাইলার ব্যবহার করে এটি ডিসকম্পল করে পাঠযোগ্য শ্রেণিতে রূপান্তর করা যায় । জারের একটি বিকল্পও রয়েছে META-INF/MANIFEST.MFযা জার ফাইলটি কীভাবে ব্যবহার করতে হয় তা আমাদের জানায় - জারের সাথে লোড করার জন্য অন্যান্য জার ফাইলগুলি নির্দিষ্ট করে।


3

জার (জাভা সংরক্ষণাগার) মধ্যে .class ফাইলগুলির একটি গ্রুপ রয়েছে।

1. জার ফাইল তৈরি করতে (জিপ ফাইল)

 if one .class (say, Demo.class) then use command jar -cvf NameOfJarFile.jar Demo.class (usually it’s not feasible for only one .class file)

 if more than one .class (say, Demo.class , DemoOne.class) then use command jar -cvf NameOfJarFile.jar Demo.class DemoOne.class

 if all .class is to be group (say, Demo.class , DemoOne.class etc) then use command jar -cvf NameOfJarFile.jar *.class

২. জার ফাইলটি বের করতে (ফাইলটি আনজিপ করুন)

    jar -xvf NameOfJarFile.jar

3. সামগ্রীতে টেবিল প্রদর্শন করুন

    jar -tvf NameOfJarFile.jar

2

একটি .jar ফাইল একটি .exe ফাইলের অনুরূপ। সংক্ষেপে, তারা উভয়ই এক্সিকিউটেবল জিপ ফাইল (বিভিন্ন জিপ অ্যালগরিদম)।

একটি জার ফাইলে আপনি ফোল্ডার এবং ক্লাস ফাইলগুলি দেখতে পাবেন। প্রতিটি শ্রেণীর ফাইল আপনার .o ফাইলের মতো এবং এটি সংকলিত জাভা সংরক্ষণাগার।

আপনি যদি কোনও জার ফাইলটিতে কোডটি দেখতে চান, একটি জাভা ডিকম্পিলার (এখানে অবস্থিত: http://java.decompiler.free.fr/?q=jdgui ) এবং একটি .jj extractor (7zip সূক্ষ্ম কাজ করে) ডাউনলোড করুন।



1

একটি .jar ফাইলটিতে সংকলিত কোড (* .ক্লাস ফাইলগুলি) এবং সেই কোড সম্পর্কিত অন্যান্য ডেটা / সংস্থান রয়েছে। এটি আপনাকে একক সংরক্ষণাগার ফাইলে একাধিক ফাইল বান্ডিল করতে সক্ষম করে। এটিতে মেটাডাটাও রয়েছে। যেহেতু এটি একটি জিপ ফাইল তাই এটি আপনার যে ডেটা রেখেছিল তা সংকুচিত করতে সক্ষম।

বেশ কয়েকটি জিনিস আমি দরকারী বলে মনে করি।

http://www.skylit.com/javamethods/faqs/createjar.html

http://docs.oracle.com/javase/tutorial/depدام/jar/basicsindex.html

অনুশীলনে ওএসজি বইটি জার ফাইলগুলি সংজ্ঞায়িত করে, "জারগুলি জিপ ফাইল ফর্ম্যাটের উপর ভিত্তি করে সংরক্ষণাগার ফাইল যা অনেকগুলি ফাইলকে একক ফাইলে একত্রিত করার অনুমতি দেয় Typ ফাইল যেমন ইমেজ এবং ডকুমেন্টস Additionally


1

কেবল ফাইলের পরিবর্তে ফাইলগুলি aopalliance.jarফাইল রয়েছে কিনা তা পরীক্ষা করুন । যদি তা হয় তবে কেবল জারের ফাইলটি এক্সট্রাক্ট করুন, এটি গ্রহণে আমদানি করুন এবংগ্রহণের পরেও একটি জার তৈরি করুন। এটা আমার জন্য কাজ করেছে।.java.class


1

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

প্রথমে আমাদের। নেট এ জেআর এর অনুরূপ ধারণাটি সংজ্ঞায়িত করতে হবে যা জাভা জেআর ফাইলগুলির সাথে অ্যাসেম্বলি এবং এসেম্বলি অনেকগুলি সাধারণভাবে ভাগ করে।

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

জাভা জেআর ফাইলগুলি জাভাতে একই রকম কার্য সম্পাদন করে বেশিরভাগ পার্থক্য বাস্তবায়নে। জেআর ফাইলগুলি জিপ ফাইল ফর্ম্যাটে সংরক্ষিত থাকাকালীন সমাবেশগুলি সাধারণত EXEs বা DLL হিসাবে সংরক্ষণ করা হয় ।

তথ্যের উত্স -> 5- সমাবেশগুলি

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