জার ফাইলটিতে ক্লাস চালান


176

আপনার যদি / মাইফোল্ডারেmyJar.jar অবস্থিত একটি জার ফাইল থাকে এবং আপনি এটি থেকে ডাকা ক্লাসটি ব্যবহার করতে চান , আপনি কীভাবে কমান্ড লাইন থেকে এটি করতে যাবেন?myClass

আমি ভেবেছিলাম ডিরেক্টরিতে গিয়ে বলতে হবে java -cp myJar.jar.myClassকিন্তু তা কাজ করছে না। কোন সাহায্য প্রশংসা করা হবে।


java -cp myJar.jar myClassআমার জন্য ভাল কাজ করে - আপনার কমান্ড লাইনে কোনও জায়গার পরিবর্তে কোনও উত্সাহী সময়কাল থাকে?
ক্রিস ডড

1
আপনি যখন বলছেন যে আপনি যে শ্রেণীর 'ব্যবহার করতে চান' তার অর্থ কী? একটি বিশেষ পদ্ধতি আছে যা আপনি বিশেষত কল করতে চান?
মার্সেলাস ওয়ালেস

উত্তর:


256

ব্যবহার java -cp myjar.jar com.mypackage.myClass

  1. ক্লাসটি যদি কোনও প্যাকেজে না থাকে তবে সহজভাবে java -cp myjar.jar myClass

  2. আপনি যদি myJar.jarঅবস্থিত ডিরেক্টরিটির মধ্যে না থাকেন তবে আপনি এটি করতে পারেন:

    1. ইউনিক্স বা লিনাক্স প্ল্যাটফর্মগুলিতে:

      java -cp /location_of_jar/myjar.jar com.mypackage.myClass

    2. উইন্ডোজে:

      java -cp c:\location_of_jar\myjar.jar com.mypackage.myClass


10
এটি কেবল যুক্ত করুন - ক্ষেত্রে com.mypackage.myClass (উপরের উদাহরণে) অন্যান্য জারগুলির উপর নির্ভরতা রয়েছে, এটি নিম্নরূপে চালান: জাভা -cp dependfile1.jar; dependfile2.jar; c: \ অবস্থান_of_jar \ myjar.jar com। mypackage.myClass
আকজাইন

2
যদি এটি কাজ না করে তবে একটি সম্ভাব্য ব্যর্থতার পথটি দেখার জন্য: নিশ্চিত হন যে আপনার ক্লাসে পুরোপুরি যোগ্যতাসম্পন্ন পাথ আপনার জার ফাইলের সাথে ঠিক মেলে। আপনি যদি আনজিপ-এল / লোকেশন- অফ- জার / মাইজার.জার করেন এবং কম / মাইপ্যাকেজ / মাইক্লাস ছাড়া অন্য কিছু দেখতে পান তবে এটি আপনার সমস্যা। (উদাহরণস্বরূপ, আপনি যদি বিন / কম / মাইপ্যাকেজ / মাই ক্লাস দেখতে পান তবে আপনার জার ফাইলটি তৈরি করতে আপনার ডাবল সিড করা উচিত ছিল; যা আপনার কাজ করবে না))
স্কট সি উইলসন

মাই ক্লাস ব্যবহার করুন, মাইক্লাস নয়
ব্রেণো ইনোজোসা

উপরোক্ত চেষ্টা করে আমি ত্রুটিটি পেয়েছি থ্রেড "মেইন" জাভা.লং.নো ক্লাসডেফফাউন্ড এরিয়ার: শসা / এপিআই / ক্লিপ / মেইন com.company.project.demo.bdd.runner.Execute.main এ (এক্সিকিউটি.জভা ২০) ) এর দ্বারা তৈরি: java.lang.ClassNotFoundException: cucumber.api.cli.Main at java.net. URLClassLoader.findClass (অজানা উত্স) at java.lang.ClassLoader.loadClass (অজানা উত্স) at sun.misc.Launcher $ AppClassLoader। java.lang.ClassLoader.loadClass (অজানা উত্স) এ লোডক্লাস (অজানা উত্স) ... আরও 1
বৈভব_শর্মা


18

জাভাতে দুটি ধরণের জেআর ফাইল পাওয়া যায়:

  1. চলমান / এক্সিকিউটেবল জার ফাইল যা ম্যানিফেস্ট ফাইল ধারণ করে। একটি রান্নেবল জার চালাতে আপনি java -jar fileName.jarবা ব্যবহার করতে পারেনjava -jar -classpath abc.jar fileName.jar

  2. সরল জার ফাইল যাতে কোনও মেনিফেস্ট ফাইল থাকে না তাই আপনি কেবল তার মূল ক্লাসটি তার পথ দিয়ে চালান java -cp ./fileName.jar MainClass


6

ধরে নিই যে আপনি যে ডিরেক্টরিতে myJar.jarফাইল আছেন সেখানে myClassএটির একটি public static void main()পদ্ধতি রয়েছে:

আপনি নিম্নলিখিত কমান্ড লাইনটি ব্যবহার করুন:

java -cp ./myJar.jar myClass

কোথায়:

  1. myJar.jarহয় বর্তমান পথ , নোট যে .সবচেয়ে সিস্টেমে বর্তমান পথ নেই। একটি সম্পূর্ণরূপে যোগ্যতাসম্পন্ন পথ পাশাপাশি এখানে পছন্দ করা হয়।

  2. myClassএকটি হল সম্পূর্ণরূপে যোগ্যতাসম্পন্ন প্যাকেজ পাথ শ্রেণী, উদাহরণস্বরূপ ধরে নেয় যে myClassহয় ডিফল্ট প্যাকেজ যা খারাপ অভ্যাস, যদি এটি একটি নেস্টেড প্যাকেজ এটি হবে হয় com.mycompany.mycode.myClass


1

এটি কার্যকর করার সঠিক উপায় .jarএবং এর মধ্যে একটি শ্রেণীর যেটি .jarহওয়া উচিত main()এবং নিম্নলিখিতটির প্যারামিটারগুলি হ'ল :

java -DLB="uk" -DType="CLIENT_IND" -jar com.fbi.rrm.rrm-batchy-1.5.jar
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.