আমি জাভা ফাইল থেকে জার কিভাবে করব?


88

আমি একটি জাভা অ্যাপ্লিকেশন ব্যবহার করে একটি সাধারণ প্রোগ্রাম লিখছিলাম (যে অ্যাপ্লিকেশনগুলিতে প্রকল্প নেই, তবে একটি প্রকল্পের মধ্যে অ্যাপ্লিকেশন;। জাভা ) যার একটি একক ফ্রেম রয়েছে। উভয় ফাইল। জাভা তাই আমি জেআর দ্বারা প্রয়োজনীয় ম্যানিফেস্ট লিখতে পারি না ।

MyApp.java , আমদানি তারপর পাবলিক ক্লাস প্যাকেজের সাথে একটি বর্গ মত শুরু হয় MyAppএবং একটি প্রধান ফাংশন আছে, কিন্তু এটি এখনও জাভা ফাইল যেখানে রাখা আছে! আমি এটি জেডিফলার 11 জি-তে লিখছি যদি এটি সাহায্য করে।

এই ফাইলগুলি থেকে কীভাবে কোনও জার তৈরি করবেন কোনও ধারণা?


4
আমি মনে করি এএনটি বা মাভেনের মতো প্যাকেজিংয়ের সরঞ্জাম ব্যবহার করে এটি আরও বেশি সহজসাধ্য হতে পারে
চুর্ক

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

জেডিভেলপারের নিজেই জার ফাইলগুলি তৈরি করার ক্ষমতা থাকতে হবে। একটি দ্রুত গুগল অনুসন্ধান এখানে কিভাবে আসে: tompeez.wordpress.com/2011/06/01/…
stolzem

4
আপনি কি আপনার প্রশ্ন পরিষ্কার করতে পারেন?
রোমেন হিপ্পি

উৎস Dir এবং চালানোর কমান্ড এ যান: - javac * .java && JarName.jar * .class cvf বয়াম
চটকদার

উত্তর:


103

একটি কমান্ড প্রম্পট খুলুন।

যে ডিরেক্টরিতে আপনার। জাভা ফাইল রয়েছে সেখানে যান

ডিরেক্টরি নির্মাণ করুন

কমান্ড লাইন থেকে জাভা সংকলন চালান

javac -d ./build *.java

যদি কোনও ত্রুটি না থাকে তবে বিল্ড ডিরেক্টরিতে আপনার শ্রেণি গাছ থাকা উচিত

বিল্ড ডিরেক্টরিতে যান এবং একটি করুন

jar cvf YourJar.jar *

মেনিফেস্ট চেক জার কমান্ড লাইন সুইচ যুক্ত করার জন্য


আমি কমান্ড লাইনটি থেকে সংকলনের চেষ্টা করেছি, তবে আমি একটি ত্রুটি পেয়েছি: ফ্রেম 1.জাভা 23: প্যাকেজ oracle.jdeveloper.layout বিদ্যমান নেই আমি কীভাবে এটি সমাধান করব? নবাগত প্রশ্নের জন্য দুঃখিত ...
ব্যবহারকারীর 303007

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

@ ব্যবহারকারী 1303007 এখানে একবার দেখুন
বিগমাইক

4
আমি আমার জার কমান্ডটিতে একটি বিকল্প যুক্ত করে স্বয়ংক্রিয়ভাবে প্রকাশ করতে মেইন-ক্লাস যুক্ত jar cfe Main.jar Main *করেছি ... (যদিও আমি বিভ্রান্ত হয়ে পড়েছি, আমাকে আউটপুট ফাইলের নামের পরে মেইন-ক্লাসের নামটি লিখতে হয়েছিল।)
ক্লেডার

32

কেবল কমান্ড লাইনের সাহায্যে:

javac MyApp.java
jar -cf myJar.jar MyApp.class

নিশ্চিত IDEs কমান্ড লাইন টার্মিনাল ব্যবহার এড়াতে


11
উপরের কাজ করেছে, তবে আমার .classমাই অ্যাপ্লিকেশনটির নির্দিষ্টকরণ প্রয়োজন । সুতরাং এটি ছিলjar -cf myJar.jar myApp.class
নাভিগাট্রন

4
এখানেও বানান ত্রুটিগুলি এবং এটি ধরে নেয় যে কোনও প্যাকেজ বিবৃতি নেই। পর্যাপ্ত নয়।
ব্যবহারকারী 207421

14

ঠিক আছে এটি সমাধান আমি খুঁজে পেতে পছন্দ করতাম, পরিবর্তে এখানে আমি এটি লিখতে:

প্রথমে .java ফাইলের জন্য সংজ্ঞায়িত প্যাকেজের সাথে সম্পর্কিত ডিরেক্টরি কাঠামো তৈরি করুন, যদি এটি my.super.application হয় তবে "আমার" ডিরেক্টরিটি তৈরি করুন এবং এর ভিতরে "সুপার" তৈরি করুন এবং এর ভিতরে "জাভা ফাইল" অ্যাপ.জভা "তৈরি করুন।

তারপরে কমান্ড লাইন থেকে:

   javac -cp /path/to/lib1.jar:/path/to/lib2.jar path/to/my/super/App.java

লক্ষ্য করুন উপরেরটিতে একাধিক লাইব্রেরি অন্তর্ভুক্ত থাকবে, যদি উইন্ডোগুলির অধীনে "," একাধিক ফাইল পৃথক করতে অন্যথায় জিএনইউ / লিনাক্স ব্যবহার করে ":" একটি জার ফাইল তৈরি করতে

   jar -cvfe App.jar App my/app/

উপরের অ্যাপ্লিকেশনটিকে মূল শ্রেণি হিসাবে চিহ্নিত করে এর সাথে সম্পর্কিত ম্যানিফেস্টের মাধ্যমে অ্যাপ্লিকেশন তৈরি করবে।

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

পরিবর্তে আপনি এটি করতে পারেন:

  1. জার ফাইলের মূল ফোল্ডারে ম্যানুয়ালি লাইব্রেরিগুলি বের করুন
  2. জারির ভিতরে লাইব্রেরিগুলি বের করার জন্য নেটবিনের মতো আইডিই ব্যবহার করুন এবং এনবিপ্রজেক্ট / বিল্ড-ইমপ্লেল.এক্সএমএল পোস্ট-জারের অংশের মধ্যে একটি নিয়ম সন্নিবেশ করুন। নিচে দেখ.
<target name="-post-jar">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
  <jar jarfile="${dist.jar}" update="true">  
            <zipfileset src="${dist.jar}" includes="**/*.class" />  
            <zipfileset src="${file.reference.iText-1.0.8.jar}" includes="**/*"/>
      <zipfileset src="${file.reference.itextpdf-3.2.1.jar}" includes="**/*"/>
  </jar>
    </target>

নেটব্যান্স আইডিইতে আপনি লাইব্রেরিগুলি যুক্ত করার পরে ফাইলটি.রফারেন্সের নামগুলি প্রজেক্ট.প্রার্টি ফাইলের মধ্যে পাওয়া যায়।


9

প্রায়শই আপনি এর মতো ম্যানিফেস্ট নির্দিষ্ট করতে চান:

jar -cvfm myJar.jar myManifest.txt myApp.class

যা পড়ে: "ভার্বোজ জারফিলনেম ম্যানিফেস্টফাইলেমন তৈরি করুন", তারপরে আপনি যে ফাইলগুলি অন্তর্ভুক্ত করতে চান তা অনুসরণ করে। ভারবোজ মানে এটি কী করছে সে সম্পর্কে মুদ্রণ বার্তা।

নোট করুন যে আপনি যে ম্যানিফেস্ট ফাইলটি সরবরাহ করেন তার নাম যে কোনও কিছু হতে পারে, যেমন jarএটি স্বয়ংক্রিয়ভাবে নাম পরিবর্তন করে এটি জার ফাইলের মধ্যে সঠিক ডিরেক্টরিতে রেখে দেবে directory


6

এটি সরাসরি আইডিই থেকে টার্মিনাল ছাড়াই করা যেতে পারে। উদাহরণস্বরূপ নেটবিন।

  1. প্যাকেজগুলির সাথে একটি পৃথক প্রকল্প তৈরি করুন (প্রকল্প তৈরি করুন - জাভা - জাভা ক্লাস লাইব্রেরি)।
  2. আপনার। জাভা ক্লাস সেখানে রাখুন।
  3. এই প্রকল্পটি তৈরি করুন।
  4. আপনার প্রকল্প ফোল্ডারে যান এবং সেখানে বিল্ড এবং ডিস্ট ফোল্ডারগুলি সন্ধান করুন।
  5. আপনার ডিস্ট ফোল্ডারে .ar ফাইলটি সন্ধান করুন।
  6. আপনার অন্যান্য প্রকল্প পান এবং প্রকল্পের লাইব্রেরিতে এই .jar ফাইলটি যুক্ত করুন।
  7. আমদানি স্বয়ংক্রিয়ভাবে আপনার জন্য করা হয়ে থাকলে আপনি এখন সরাসরি এই লাইব্রেরি থেকে ক্লাস এবং কোড থেকে সরাসরি এর পদ্ধতিগুলি উল্লেখ করতে পারেন।

3

এটি করার আরও অভিনব উপায় এখানে:

$ ls | grep .java | xargs -I {} javac {} ; jar -cf myJar.jar *.class

যা ls | grep .javaআপনার বর্তমান ডিরেক্টরি থেকে সমস্ত জাভা ফাইল ( ) কেড়ে xargs -I {} javac {}নেবে এবং সেগুলি .class ( ) তে সংকলন করবে এবং তারপরে পূর্ববর্তী সংকলিত ক্লাসগুলি ( jar -cf myJar.jar *.class) থেকে জার ফাইলটি তৈরি করবে ।


2

আপনার জাভা কোড থেকে একটি জেআর সংকলনের সবচেয়ে প্রাথমিক-বান্ধব উপায়টি হ'ল নেটবিন বা একটিলিপসের মতো আইডিই (সংহত বিকাশের পরিবেশ; মূলত উন্নয়নের জন্য কেবল ব্যবহারকারী-বান্ধব সফ্টওয়্যার) ব্যবহার করা।

  • একটি আইডিই ইনস্টল এবং সেট আপ করুন। এখানে Eclipse এর সর্বশেষতম সংস্করণ
  • আপনার আইডিইতে একটি প্রকল্প তৈরি করুন এবং আপনার জাভা ফাইলগুলি প্রকল্পের ফোল্ডারের ভিতরে রাখুন।
  • আইডিইতে প্রকল্পটি নির্বাচন করুন এবং প্রকল্পটিকে জেআর হিসাবে রফতানি করুন। রফতানির সময় উপযুক্ত জাভা ফাইলগুলি নির্বাচন করা হয়েছে কিনা তা ডাবল পরীক্ষা করে দেখুন।

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

javac YourApp.java
jar -cf YourJar.jar YourApp.class

... যথাক্রমে আপনার ফাইলগুলির যথাযথ নামগুলিতে "আপনার অ্যাপ" এবং "আপনার জার" পরিবর্তন করা changing

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