সংক্ষিপ্ত ফর্ম: যদি আপনার মূলটি একটি জারের মধ্যে থাকে তবে আপনার সম্ভবত সম্ভবত অতিরিক্ত একটি 'জাজার পাথো / আপনার জার / আপনার জারনাম.জাজার' প্রয়োজন হবে এটি পরিষ্কারভাবে ঘোষণা করার জন্য এটি কাজ করার জন্য (যদিও 'আপনার জার্স নেম.জার' ক্লাসপথে ছিল)) (বা , 5 বছর আগে জিজ্ঞাসা করা মূল প্রশ্নের উত্তরের জন্য প্রকাশিত: আপনার প্রতিটি জারটি স্পষ্টভাবে পুনরায় বিবরণ করার দরকার নেই, তবে মনে হয়, জাভা with সহ আপনার নিজের জারের পুনরায় বিবরণ করা দরকার ...)
দীর্ঘ ফর্ম: (আমি এটি এই স্পষ্টে প্রকাশ করেছি যে আমি আশা করি এমনকি জাভাতেও আন্তঃলিপিরা এটি ব্যবহার করতে পারে)
এখানে অনেকের মতো আমি জার রফতানি করতে গ্রহণ করছি: (ফাইল-> রফতানি -> 'চলমান জেআর ফাইল')। 'লাইব্রেরি হ্যান্ডলিং' গ্রহণের (জুনো) অফারে তিনটি বিকল্প রয়েছে:
opt1: "Extract required libraries into generated JAR"
opt2: "Package required libraries into generated JAR"
opt3: "Copy required libraries into a sub-folder next to the generated JAR"
সাধারণত আমি অপ্ট 2 ব্যবহার করতাম (এবং অপ্ট 1 অবশ্যই ভেঙেছিল) তবে আমি যে জারগুলিতে ব্যবহার করছি তার একটিতে নেটিভ কোড আমি হ্যান্ডি "জারিনজার" ট্রিকের সাথে ব্রেকগুলি আবিষ্কার করেছি যা আপনি যখন এই বিকল্পটি বেছে নেবেন তখন গ্রহগ্রহণের উত্সব লাভ করবে। আমার অপট ৩ প্রয়োজন বুঝতে পেরে এবং তারপরেও এই স্ট্যাকওভারফ্লো এন্ট্রিটি সন্ধান করার পরেও, আমি কীভাবে আমার গ্রহের গ্রহের বাইরে আমার মূল প্রবর্তন করতে পারি তা নির্ধারণ করতে আমার কিছুটা সময় লেগেছিল, সুতরাং এটি আমার জন্য কী কাজ করেছে, কারণ এটি অন্যদের জন্য দরকারী ...
যদি আপনি আপনার জারের নাম রেখেছেন: "fooBarTheJarFile.jar" এবং সমস্তটি ডিরের কাছে রফতানি করার জন্য প্রস্তুত: "/ দ্যফুলি / কোয়ালিফাইডপ্যাথ / টু আপনারচোসেনডির"।
(যার অর্থ 'রফতানির গন্তব্য' ক্ষেত্রটি পড়বে: '/ পুরোফিল্লি / কোয়ালিফাইডপথ / টু আপনারচোসেনডির / ফুবার দ্য জারফিল.জার')
আপনি সমাপ্তির পরে, আপনি গ্রহনের সন্ধান পাবেন তারপরে সমস্ত লাইব্রেরিগুলিকে সেই রফতানি ডিরেক্টরিতে 'fooBarTheJarFile_lib' নামে একটি ফোল্ডারে রাখবেন, আপনাকে এরকম কিছু দিয়ে যাবেন:
/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile.jar
/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile_lib/SomeOtherJar01.jar
/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile_lib/SomeOtherJar02.jar
/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile_lib/SomeOtherJar03.jar
/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile_lib/SomeOtherJar04.jar
এরপরে আপনি আপনার সিস্টেমে যে কোনও জায়গা থেকে এটিকে দিয়ে শুরু করতে পারেন:
java -classpath "/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile_lib/*" -jar /theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile.jar package.path_to.the_class_with.your_main.TheClassWithYourMain
(জাভা নিউবিইজের জন্য: 'প্যাকেজ.পাথ_ টু_থ্লাস_উইথ.ইউর_মাইন' হ'ল একটি ঘোষিত প্যাকেজ-পাথ যা আপনি 'TheClassWithYourMain.java' ফাইলের শীর্ষে পাবেন যা 'মেন (স্ট্রিং [] আরগস) রয়েছে {.. } 'আপনি বাইরে থেকে জাভা চালাতে চান)
লক্ষণীয় বিষয়: আপনার ঘোষিত ক্লাসপথে জারের তালিকার মধ্যে 'fooBarTheJarFile.jar' থাকা যথেষ্ট নয়। আপনাকে স্পষ্টভাবে '-জার' ঘোষণা করতে হবে এবং সেই জারের অবস্থানটি পুনরায় ঘোষণা করতে হবে।
যেমন বিরতি:
java -classpath "/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile.jar;/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile_lib/*" somepackages.inside.yourJar.leadingToTheMain.TheClassWithYourMain
আপেক্ষিক পথের সাথে পুনঃস্থাপন:
cd /theFully/qualifiedPath/toYourChosenDir/;
BREAKS: java -cp "fooBarTheJarFile_lib/*" package.path_to.the_class_with.your_main.TheClassWithYourMain
BREAKS: java -cp ".;fooBarTheJarFile_lib/*" package.path_to.the_class_with.your_main.TheClassWithYourMain
BREAKS: java -cp ".;fooBarTheJarFile_lib/*" -jar package.path_to.the_class_with.your_main.TheClassWithYourMain
WORKS: java -cp ".;fooBarTheJarFile_lib/*" -jar fooBarTheJarFile.jar package.path_to.the_class_with.your_main.TheClassWithYourMain
(জাভা সংস্করণ "1.6.0_27" ব্যবহার করে; ওবুন্টু 12.04-তে ওপেনজেডিকে 64-বিট সার্ভার ভিএম এর মাধ্যমে)