কেন এটি একটি জেআর ফাইল থেকে মূল-শ্রেণীর ম্যানিফেস্ট বৈশিষ্ট্যটি লোড করতে ব্যর্থ হয়েছে?


85

আমি এইভাবে একটি জেআর ফাইল তৈরি করেছি jar cf jar-file input-files। এখন, আমি এটি চালানোর চেষ্টা করছি। এটি চালানো কার্যকর হয় না (জে কমান্ড পাওয়া যায় না):

jre -cp app.jar MainClass

এটিও কার্যকর হয় না:

java -jar main.jar

(মেইন.জার থেকে প্রধান-শ্রেণীর ম্যানিফেস্ট বৈশিষ্ট্যটি লোড করতে ব্যর্থ হয়েছে)।

আমি এটিও খুঁজে পেয়েছি

জেআর ফাইল হিসাবে প্যাক করা একটি অ্যাপ্লিকেশন চালনা করতে (সংস্করণ 1.2 - মূল শ্রেণীর ম্যানিফেস্ট শিরোনাম প্রয়োজন)

"মেইন-ক্লাস ম্যানিফেস্ট হেডার" কী? আমি এটি কীভাবে তৈরি করব এবং আমি এটি কোথায় রাখব?

উত্তর:


62

আমি নিশ্চিত না যে আমি আপনার লক্ষণগুলিকে বিশ্বাস করি:

  • যদি jreকমান্ডটি খুঁজে পাওয়া যায় না, তবে রানিংয়ে jre -cp app.jarএকই ত্রুটি দেওয়া উচিত
  • ক্লাসপথে কেবল একটি JAR ফাইল যুক্ত করা আপনার ত্রুটিটি দেখা উচিত নয় give

আপনি যদি চালনা করেন তবে আপনি এই ত্রুটিটি দেখতে পাবে আশা করি:

java -jar app.jar

মেইন-ক্লাস শিরোনামটি জেআর ফাইলের জন্য ম্যানিফেস্টে থাকা দরকার - এটি অন্যান্য প্রয়োজনীয় লাইব্রেরির মতো জিনিসগুলির জন্য মেটাডেটা। কীভাবে উপযুক্ত ম্যানিফেস্ট তৈরি করা যায় তার জন্য সান ডকুমেন্টেশন দেখুন । মূলত আপনাকে একটি টেক্সট ফাইল তৈরি করতে হবে যাতে এর মতো একটি লাইন থাকে:

Main-Class: MainClass

তারপরে দৌড়াও

jar cfm app.jar manifest.txt *.class

ধন্যবাদ. এটা কাজ করে। আমি এর সাথে একটি মেনিফেস্ট ফাইল তৈরি করেছিলাম Main-Class: MainClassএবং তারপরে আপনার দেওয়া আদেশ দিয়ে .jar ফাইলটি তৈরি করেছি। এর পরে আমি আমার প্রোগ্রামটি চালাতে সক্ষম হয়েছি java -jar main.jar
রোমান

4
অন্য বিকল্পটি পৃথক ফাইলের প্রয়োজন ছাড়াই -e বিকল্পটি ব্যবহার করছে। jar cfe app.jar MainClass *.classদ্রষ্টব্য:
-এটি জেডিকে in-

35
  1. ক্লাসপথ সেট করুন এবং সংকলন করুন

    জাভাক-ক্লাসপাথ "সি: \ প্রোগ্রাম ফাইলস \ জাভা \ jdk1.6.0_ আপডেট সংস্করণ। সরঞ্জামস.জার" আপনার অ্যাপ.জেভা

  2. manifest.txt তৈরি করুন

    প্রধান-শ্রেণি: আপনার অ্যাপ্লিকেশন নিউলাইন

  3. আপনার অ্যাপ্লিকেশন.জার তৈরি করুন

    জার সিভিএফ0 এম আপনার অ্যাপ.জার ম্যানিফেস্ট.টেক্সট আপনার অ্যাপ্লিকেশন

  4. yourApp.jar চালান

    জাভা-জজার আপনার অ্যাপ.জার


9

আপনি এই সাথে চালাতে পারেন:

java -cp .;app.jar package.MainClass

জেআর ফাইলটিতে কোনও ম্যানিফেস্ট না থাকলে এটি আমার পক্ষে কাজ করে।


আমি: অজানা বিকল্প: -সিপি। আপনি আপনার উত্তর পর্যালোচনা করতে পারেন? কারণ এই আদেশটি যা করার চেষ্টা করছে আমি তা করি না। (java -cp।; app.jar package.MainClass)। এটি একটি আদেশ, না দুটি?
কেনারব

4
docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/… "-cp।; app.jar" আপনার মেইনক্লাস.মেন () পদ্ধতি চালাতে না পারে তার চেয়ে ক্লাসের পথে আপনার অ্যাপ.জার ফাইলটি যুক্ত করা উচিত ( মেইনক্লাসটি "প্যাকেজ" প্যাকেজে রয়েছে)।
ডায়িনিয়াস

4
সুতরাং সম্ভবত লিনাক্সে এই বিকল্পটি (-সিপি) বিদ্যমান নেই (খনিটি জাভা v1.6.0_24, ওপেনজেডিকে রানটাইম এনভায়রনমেন্ট (আইসডটিয়া 6 1.11.3) (6b24-1.11.3-1ubuntu0.12.04.1))।
কেনারব

"। জাভা -cp test1.Main" জাভা -version => জাভা হটস্পট (টি এম) 64-বিট সার্ভার VM- র (বিল্ড 20.1-B02, মিশ্র মোড) কাজ
Dainius

/ usr / lib / jvm / java-6-openjdk-amd64 / bin / java -version => ওপেনজেডকে 64-বিট সার্ভার ভিএম (বিল্ড 20.0-বি 12, মিশ্র মোড) "/ usr / lib / jvm / java-6-openjdk । -amd64 / বিন / জাভা -cp test1.Main "কাজ
Dainius

6

আমি এই ত্রুটিটি পেয়েছি, এবং এটি কারণ ছিল যে আমার পক্ষে ভুল ক্রমে যুক্তি ছিল:

সঠিক

java maui.main.Examples tagging -jar maui-1.0.jar 

ভুল

java -jar maui-1.0.jar maui.main.Examples tagging 

4
এটি কেবল বিএসডি সমস্যা হতে পারে, আমি খুব নিশ্চিত যে আমি এটি অন্যভাবে সম্প্রতি করেছি।
শ্রীধর সারনোবাত

1

আপনি যথাযথ ম্যানিফেস্ট ফাইল সহ চলমানযোগ্য জেআর ফাইলটি সঠিকভাবে তৈরি করেছেন তা নিশ্চিত হওয়ার সবচেয়ে সহজ উপায় হ'ল এটি আপনার জন্য তৈরি করার জন্য এক্সিলিপ ব্যবহার করা । আপনার Eclipse প্রকল্পে, আপনি মূলত মেনু থেকে কেবল ফাইল / রফতানি নির্বাচন করুন এবং প্রম্পটগুলি অনুসরণ করুন।

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


ExportEclipse IDE এর জন্য আপনাকে ধন্যবাদ ।
নিনাহ ফাম


0

আমি আবিষ্কার করেছি যে নেটবিনেও আমার এই ত্রুটি ছিল। আমি আশা করি নিম্নলিখিতটি সহায়ক হবে।

  1. নিশ্চিত হয়ে নিন যে আপনি যখন প্রকল্পের কনফিগারেশনে যান তখন আপনি প্রধান শ্রেণিটি পরিচালনা করেন যা আপনি চালনার জন্য চান nd
  2. একটি বিল্ড বা ক্লিন বিল্ড করুন
  3. আপনার ইচ্ছা মতো জার ফাইলটি রাখুন এবং চেষ্টা করুন: জাভা-জজার "আপনার প্রজেক্ট.জার" কমান্ড লাইনে আবার।

এই সমস্যাটি আমিই পাচ্ছিলাম কারণ নেটবিনে আমার অন্যান্য "পরীক্ষা" প্রোগ্রামগুলি ব্যবহার করছিলাম এবং প্রকল্প কনফিগারেশনের রান অংশের অধীনে প্রধান শ্রেণিটি সঠিকভাবে সেট করা হয়েছে কিনা তা নিশ্চিত করতে হয়েছিল।

অনেক আশীর্বাদ, জন পি


0

আমি যখন দৌড়ালাম তখন একই ত্রুটি পেয়েছিলাম :
জার সিভিএফএম টেস্ট.জার টেস্টক্লাস ম্যানিফেস্ট। টেক্সট

এটি কী সমাধান করেছিল তা হ'ল:
জার সিভিএফএম পরীক্ষার Man

আমার ম্যানিফেস্টে ওরাকল ডক্স অনুসারে প্রবেশের বিন্দু রয়েছে (ফাইলটির শেষে একটি নতুন লাইন চরিত্র রয়েছে তা নিশ্চিত করুন):
মূল-শ্রেণি: পরীক্ষা


0

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

http://crunchify.com/exception-in-thread-main-java-lang-unsupporterclassversionerror-comcrunchifymain-unsupported-major-minor-version-51-0/

এই পদক্ষেপের পরে তৈরি জারটি চালানোর চেষ্টা করুন এবং তারপরে এটি কার্যকর করুন


0

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


0

আপনি যদি গ্রহপ ব্যবহার করে থাকেন তবে নীচে চেষ্টা করুন: ১. প্রকল্পে ডান ক্লিক করুন -> রফতানি নির্বাচন করুন 2 একটি রফতানি গন্তব্য নির্বাচন করে রান্নেবল জার ফাইল নির্বাচন করুন 3.. জারের নাম লিখুন এবং "প্যাকেজ আবশ্যক ..." নির্বাচন করুন (দ্বিতীয় রেডিও বোতাম) -> সমাপ্ত

আশাকরি এটা সাহায্য করবে...!

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