জার-ফাইলটি কার্যকর করা যায় না: "কোনও প্রধান প্রকাশ্য বৈশিষ্ট্য নেই"


969

আমি একটি অ্যাপ্লিকেশন ইনস্টল করেছি, যখন আমি এটি চালানোর চেষ্টা করি (এটি একটি এক্সিকিউটেবল জার) কিছুই হয় না। কমান্ডলাইন থেকে যখন আমি এটি দিয়ে চালাব:

java -jar "app.jar"

আমি নিম্নলিখিত বার্তাটি পেয়েছি:

"অ্যাপ্লিকেশন.জার" এ কোনও প্রধান ম্যানিফেস্ট বৈশিষ্ট্য নেই

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


প্রধান পদ্ধতিগুলি দেখুন; আপনি শ্রেণীর নামের উপর নির্ভর করতে পারবেন না।
ডেভ নিউটন

2
আমি জানি, তবে যেহেতু আমার কাছে কেবল। ক্লাস ফাইল রয়েছে আমি আসলে পদ্ধতিগুলি দেখতে পাচ্ছি না। নাকি পারি?
এওউদ

আপনি সত্যিই উদ্ধৃতি টাইপ করছেন না, আপনি? যাই হোক না কেন, পদ্ধতিগুলি দেখতে বিভিন্ন উপায় রয়েছে যার মধ্যে রয়েছে ব্যবহার javap। আপনি এটি আন-জার করতে চাইতে পারেন এবং বাস্তবে কোনও প্রকাশ নেই কিনা তা সন্ধান করতে পারেন।
ডেভ নিউটন

সম্পর্কিত: নির্ভরতা সহ: stackoverflow.com/a/23986765/360211
ওয়েস্টন

আমি যদি কমান্ডলাইন জোব্রুনার
কামিনী

উত্তর:


946

প্রথমত, আপনাকে চালানো java -jar "app"এবং না দেখার জন্য এটি এক ধরণের অদ্ভুতjava -jar app.jar

দ্বিতীয়ত, একটি বয়ামকে কার্যকর কার্যকর করার জন্য ... আপনাকে META-INF / MANIFEST.MF নামে একটি ফাইল জার করতে হবে

ফাইলটিতে নিজেই এই একটি লাইনার থাকা উচিত:

Main-Class: com.mypackage.MyClass

com.mypackage.MyClassক্লাসটি কোথায় পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং [] আরগস) এন্ট্রি পয়েন্ট ধারণ করে ।

মনে রাখবেন যে সিএলআই, মাভেন, পিঁপড়া বা গ্রেডল দিয়ে এটি করার বিভিন্ন উপায় রয়েছে:

জন্য CLI , নিম্নলিখিত কমান্ড প্রয়োগ করতে হবে: (tks @ dvvrt ) jar cmvf META-INF/MANIFEST.MF <new-jar-filename>.jar <files to include>

জন্য ম্যাভেন , নিম্নলিখিত স্নিপেট ভালো কিছু কৌতুক করতে হবে। দ্রষ্টব্য যে এটি কেবল প্লাগইন সংজ্ঞা, সম্পূর্ণ pom.xML নয় :

<build>
  <plugins>
    <plugin>
      <!-- Build an executable JAR -->
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>3.1.0</version>
      <configuration>
        <archive>
          <manifest>
            <addClasspath>true</addClasspath>
            <classpathPrefix>lib/</classpathPrefix>
            <mainClass>com.mypackage.MyClass</mainClass>
          </manifest>
        </archive>
      </configuration>
    </plugin>
  </plugins>
</build>

( <version>আপনার প্রকল্পের জন্য উপযুক্ত চয়ন করুন ।)

জন্য অ্যান্ট , নীচের snippet সাহায্য করা উচিত:

<jar destfile="build/main/checksites.jar">
  <fileset dir="build/main/classes"/>
  <zipfileset includes="**/*.class" src="lib/main/some.jar"/>
  <manifest>
    <attribute name="Main-Class" value="com.acme.checksites.Main"/>
  </manifest>
</jar>

কৃতিত্ব মাইকেল নিক্যান্ড -

জন্য Gradle :

plugins {
    id 'java'
}

jar {
    manifest {
        attributes(
                'Main-Class': 'com.mypackage.MyClass'
        )
    }
}

15
পিঁপিতে এটির <ম্যানিফেস্ট> <অ্যাট্রিবিউট নাম = "মেইন-ক্লাস" মান = "com.mypackage.MyClass" /> </manif> <j> উপাদানটির মধ্যে রয়েছে
মাইকেল নিক্যান্ড

1
ধন্যবাদ. কেবল এটি যুক্ত করতে চেয়েছিলেন যে আপনি এটি ব্যবহার করে লিব ফোল্ডারে নির্ভরতা অনুলিপি করতে পারেন: stackoverflow.com/a/996915/1121497 । যেহেতু ক্লাসপথে সেই libফোল্ডারটি অন্তর্ভুক্ত থাকে তারপরে আপনাকে কেবল জারটি দিয়ে চালানো দরকার java -jar myproject.jarএবং এটি নির্ভরতা খুঁজে পাবে।
ফেরান মেলিনঞ্চ

4
কীভাবে "META-INF / MANIFEST.MF" নামে একটি ফাইল জার করবেন? আমার একদিকে জাজার এবং অন্যদিকে একটি এমএমএফ, আমি কীভাবে এগুলি সংযুক্ত করব? আমি জাজের মতো একই ফোল্ডারে ম্যানিফেস্টটি রেখেছি তবে এটি কাজ করে না আমি এখনও সমস্যা পেয়েছি!
উইসেলো

4
@ উইসেলো একটি জার ফাইল তৈরি করার সময় একটি নির্দিষ্ট MANIFEST.MF ফাইল নির্দিষ্ট করতে জারের জন্য এম পতাকা ব্যবহার করুন। যেমন। jar cmvf META-INF/MANIFEST.MF <new-jar-filename>.jar <files to include>
ডিভিভিআরটি

1
দ্রষ্টব্য: মাভেনের জন্য, আমি ইতিমধ্যে maven-jar-pluginভিএসসি-উত্পাদিত মাভেন ফাইলে একটি আইটেম রেখেছি, তাই আমি কেবল <configuration>এটিতে বিভাগটি যুক্ত করেছি।
অ্যারন ফ্র্যাঙ্ক

279

এর java -jar app.jarপরিবর্তে হওয়া উচিত ছিল java -jar "app"

-jarযদি JAR- র ফাইল একটি এক্সিকিউটেবল JAR- র ফাইল, যার মানে এটি একটি সঙ্গে একটি ম্যানিফেস্ট ফাইল থাকা আবশ্যক বিকল্প শুধুমাত্র কাজ করে Main-Classতাতে অ্যাট্রিবিউট। এক্সিকিউটেবল জেআর কীভাবে তৈরি করবেন তা শিখতে জেআর ফাইলগুলিতে প্যাকেজিং প্রোগ্রামগুলি দেখুন ।

যদি এটি এক্সিকিউটেবল জেআর না হয় তবে আপনার প্রোগ্রামটি এমন কিছু দিয়ে চালানো দরকার:

java -cp app.jar com.somepackage.SomeClass

প্রোগ্রামটি চালানোর পদ্ধতি com.somepackage.SomeClassথাকা ক্লাসটি কোথায় main। (এই ক্লাসটি কী প্রোগ্রামের উপর নির্ভরশীল, আপনি যে তথ্য সরবরাহ করেছেন তা থেকে জানা অসম্ভব)।


3
আপনার জবাবের জন্য ধন্যবাদ, তবে আপনার সমাধানটি কেবল তখনই কাজ করে যদি আমি ক্লাসের নাম জানি যেখানে মূল পদ্ধতি রয়েছে। এবং এটি একটি টাইপো ছিল ... এটি "app.jar" হওয়ার কথা ছিল। তবে আপনি কীভাবে ব্যাখ্যা করবেন যে কেবল ফাইলটিতে ডাবল ক্লিক করে এটি কেন অন্য সিস্টেমে চলে?
এওউদ

যদি এটি বাস্তবায়িত কার্যকর জেআর হয় তবে আপনি ম্যানিফেস্ট ফাইলটি বের করতে পারেন (এটি META-INFজেআর ফাইলের মধ্যে ডিরেক্টরিতে রয়েছে)। Main-Classএটিতে এমন একটি বৈশিষ্ট্য থাকা উচিত যা আপনাকে প্রধান শ্রেণীর নাম দেয়।
জেস্পার

যদি এটি একটি সিস্টেমে না চলে, তবে সেই সিস্টেমে সম্ভবত জাভা সংস্করণটি খুব পুরানো। যদি জারটি উদাহরণস্বরূপ জাভা 7 এর সাথে সংকলিত হয়, তবে আপনি এটিকে জাভা 6 বা তার বেশি পুরানো সিস্টেমে চালাতে পারবেন না।
জেস্পার

এটি মজার বিষয় যেহেতু অন্যান্য সিস্টেমটি উইন 7 চলছে এবং সমস্যাগুলির সাথে এই পিসি উইন 8 চালায়।
ইওউদ

2
@ জেস্পার হ্যালো, যদি গ্রহনটি ডিফল্ট প্যাকেজটি ব্যবহার করে? আমি কি শুধু ক্লাসের নাম রাখি?
ওজেন

127

বিকল্পভাবে, আপনি মাভেন-অ্যাসেমব্লিং-প্লাগইন ব্যবহার করতে পারেন, যেমন নীচের উদাহরণে দেখানো হয়েছে:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>single</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <archive>
        <manifest>
          <addClasspath>true</addClasspath>
          <mainClass>com.package.MainClass</mainClass>
        </manifest>
      </archive>
      <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
    </configuration>
  </plugin> 

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


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

2
শেড প্লাগইন প্রসঙ্গে, এক্সিকিউটেবল জেআর- এ সহায়তা অনুসরণ করতে হবে ।
কোপ্পোর

3
এটি maven-assembly-pluginকাজ করে। maven-jar-pluginনা।
মার্টিনাস জুসেভিউয়াস

দ্রষ্টব্য: আপনার pom.xmlফাইলটির ভিতরে এই কোডটি রাখুন <build><plugins> PUT IT HERE </plugins></build>এবং তারপরে মাভেন প্যাকেজটি সম্পাদন করুন (আইডিইএ ওপেন মাভেন স্লাইডিং মেনুতে ডানদিকে, প্রকল্প> জীবনচক্র> প্যাকেজটি দেখুন)। তারপরে আপনার জার ফাইলটি টার্গেট ফোল্ডারে থাকবে। চিয়ার্স!
কিরিল করমজিন

আমি সত্যিই এই সমস্যাটির সাথে লড়াই করছিলাম ... এটি পুরোপুরি কার্যকর করে। ধন্যবাদ!
jmojico

60

এর কারণ জাভা MANIFEST.MF ফাইলে মূল বৈশিষ্ট্যটি খুঁজে পায় না। জাভাটি এটি প্রয়োগের প্রবেশের পয়েন্ট হিসাবে কোন শ্রেণীর ব্যবহার করা উচিত তা জানাতে প্রধান বৈশিষ্ট্যটি প্রয়োজনীয়। জার ফাইলের অভ্যন্তরে, MANIFEST.MF ফাইলটি META-INF ফোল্ডারে অবস্থিত। ভাবছেন যে আপনি কীভাবে একটি জার ফাইলের ভিতরে দেখতে পারেন? WinRAR দিয়ে জার ফাইলটি খুলুন।

MANIFEST.MF এর ভিতরে প্রধান বৈশিষ্ট্যটি দেখতে এমন দেখাচ্ছে:

Main-Class: <packagename>.<classname>

এই লাইনটি MANIFEST.MF ফাইল থেকে নিখোঁজ হয়ে গেলে আপনি এই "কোনও প্রধান ম্যানিফেস্ট এট্রিবিউট" ত্রুটি পাবেন না।

MANIFEST.MF ফাইলের মধ্যে এই বৈশিষ্ট্যটি নির্দিষ্ট করে দেওয়া সত্যিই একটি বিশাল গণ্ডগোল।

আপডেট: গ্রহণের জন্য অ্যাপ্লিকেশনটির প্রবেশের পয়েন্টটি নির্দিষ্ট করার জন্য আমি সবেমাত্র একটি ঝরঝরে উপায় পেয়েছি। আপনি যখন রফতানি বলবেন,

Select Jar and next 

[ give it a name in the next window ] and next

and next again

and you'll see " Select the class of the application entry point".

Just pick a class and Eclipse will automatically build a cool MANIFEST.MF for you.

এখানে চিত্র বর্ণনা লিখুন


32

আমারও একই প্রশ্ন ছিল. পম ফাইলে নিম্নলিখিত লাইনগুলি যুক্ত করে এটি কাজ করে। প্লাগইনটি প্রয়োজনীয় সমস্ত পদক্ষেপের সাথে আপনার অ্যাপ্লিকেশনটির বিল্ড প্রক্রিয়াটি নিশ্চিত করবে।

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

2
নিখুঁতভাবে কাজ করেছে, তবে এপ্রিল 2018 এর সংস্করণটি যুক্ত করার বিষয়টি বিবেচনা করুন <plugin> <groupId> org.springframework.boot </groupId> <artifactId> স্প্রিং-বুট-মাভেন-প্লাগইন </ আর্টিক্ট আইডি> <version> ২.০.১.আরলে < / সংস্করণ> </plugin>
টেনফ্লেক্স

দুঃখিত তবে এটি সমাধান নয় কারণ তিনি স্প্রিং বুটের কথা বলছেন না, এটি জার মৃত্যুদন্ড কার্যকর করার ক্ষেত্রে সাধারণ সমস্যা :)
লামরিন টাওয়ারসাস

অনেক ধন্যবাদ, এটি বসন্ত বুটের জন্য সমস্যার সমাধান করেছে!
আলেকসান্ডার্ট

আমি স্প্রিং বুট ২.২.০ এ কাজ করছি e দুর্ভাগ্যক্রমে, এই সমাধানটি আমার পক্ষে কার্যকর হয়নি। যাইহোক, আপনি যখন <parent>...</parent>pom.xML এ কোনও অ্যাপ্লিকেশন উল্লেখ করেছেন তখন এটি কাজ করে। আমার অনুমান, আমরা যদি parentঅ্যাপ্লিকেশনটির pom.xML পরিদর্শন করি তবে আমরা একটি পরিষ্কার ধারণা পেয়ে যাব।
tusar

আমি অবশেষে আমার সমস্যাটি প্রথা দিয়ে সমাধান করেছি repackage-classifier। অনুগ্রহ করে পরিদর্শন করুন docs.spring.io/spring-boot/docs/2.2.0.RELEASE/maven-plugin/...
tusar

30

গ্রেডল উত্তরটি হ'ল জার / ম্যানিফেস্ট / এ্যাট্রিবিউট সেটিং এর মতো যুক্ত করা:

apply plugin: 'java'

jar {
    manifest {
        attributes 'Main-Class': 'com.package.app.Class'
    }
}

1
সবচেয়ে সহজ উত্তর এ পর্যন্ত।
lasec0203

29

ইন্টেলিজ আইডিইএ ব্যবহার করে একটি জার তৈরি করার সময় আমার এই সমস্যাটি ছিল। এই আলোচনা দেখুন ।

আমার জন্য যে বিষয়টি সমাধান হয়েছিল তা হ'ল জার আর্টিক্টটি পুনরায় তৈরি করা, জেআর> মডিউল থেকে নির্ভরতা সহ চয়ন করা, কিন্তু মেটা-আইএনএফ / ম্যানিফেসেস্ট.এমএফের জন্য ডিফল্ট ডিরেক্টরিটি গ্রহণ করা হয়নি। এটিকে - / src / main / java থেকে - / src / প্রধান / সংস্থানগুলিতে পরিবর্তন করুন।

অন্যথায় এটি জারটিতে একটি ম্যানিফেস্ট ফাইল অন্তর্ভুক্ত ছিল, তবে এটি / / src / প্রধান / জাভাতে থাকা উচিত নয় it


এটি আইডিইএ 14.1.6 এর সাথে আমার পক্ষে কাজ করেছে। আমি pom.xml এর জন্য বিল্ড সম্পত্তিও যুক্ত করেছিলাম তবে এর কোনও প্রভাব ছিল না। তবে আপনার উত্তর এটি সমাধান করেছে, আপনাকে ধন্যবাদ।
lsrom

3
আমার ডেস্কটপকে অন্য কোনও কাজ না করার নির্ভেজাল হতাশার হাত থেকে রক্ষা পাওয়ার জন্য ধন্যবাদ;) আপনার লিঙ্কটি ভাঙা মনে হচ্ছে, তবে আমি নিশ্চিত করতে পারি যে এটি পুরোপুরি কার্যকর হয়েছে। IntelliJ IDEA 2018.2.5 (সম্প্রদায় সংস্করণ) এর সাথে পরীক্ষিত
ম্যাথিয়াস Bö

নিশ্চিত হয়েছে যে এটি কাজ করে, যদিও আমার কাছে একটি / সংস্থান ডিরেক্টরি নেই
lxknvlk

28

মেভেনের জন্য, এটিই এটিকে সমাধান করেছে (আমার জন্য, গিটহাবের ভেটল কোডবাসের জন্য):

<build>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.0</version>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>shade</goal>
        </goals>
        <configuration>
          <transformers>
            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
              <mainClass>org.lazydevs.veetle.api.VeetleAPI</mainClass>
            </transformer>
          </transformers>
        </configuration>
      </execution>
    </executions>
  </plugin>
 </plugins>
</build>

চিয়ার্স ...


আমি এটি কাজ করে দেখেছি তবে mvn package shade:shadeকেবল চালানো mvn packageছায়া প্লাগইন চালানোর জন্য ট্রিগার না করায় আমাকে মৃত্যুদণ্ড কার্যকর করতে হয়েছিল।
রায়স্টর্ম

24

জারটি অন্তর্ভুক্ত করার জন্য এই আদেশটি ব্যবহার করে দেখুন:

java -cp yourJarName.jar your.package..your.MainClass

1
একটি উপায় হ'ল পম.এক্সএমএল-তে প্রধান শ্রেণীর অন্তর্ভুক্ত করা এবং জাভা-জজার কমান্ড ব্যবহার করা, অন্যটি হল জাভা-সিপি কমান্ড ব্যবহার করা।
গৌরব খারে

15

আমার জন্য, উত্তরের কোনও উত্তরই সত্যই সাহায্য করতে পারে নি - আমার কাছে সঠিক জায়গায় ম্যানিফেস্ট ফাইল ছিল, এতে মেইন-ক্লাস এবং সমস্ত কিছু রয়েছে। যা আমাকে ছড়িয়ে দিয়েছে তা হ'ল:

সতর্কতা: আপনি যে পাঠ্য ফাইলটি থেকে ম্যানিফেস্টটি তৈরি করছেন তা অবশ্যই একটি নতুন লাইন বা ক্যারেজ রিটার্নের সাথে শেষ হবে। নতুন লাইন বা ক্যারেজ রিটার্ন দিয়ে শেষ না হলে শেষ লাইনটি সঠিকভাবে বিশ্লেষণ করা যাবে না।

( উত্স ) ম্যানিফেস্টের শেষে একটি নতুন লাইন যুক্ত করা এটি স্থির করে।


11

যদি মাভেন ব্যবহার করে থাকেন তবে পোমে নিম্নলিখিতটি অন্তর্ভুক্ত করুন

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.2.RELEASE</version>
</parent>

<properties>
    <java.version>1.8</java.version>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

3
কে বলেছে এটি একটি স্প্রিং বুট প্রকল্প?
james.garriss

2
@ জেমস.গরিস ভালভাবে বলতে পারি, আমি no main manifest attributeত্রুটির জন্য অনুসন্ধান করতে এই পোস্টে এসেছি তবে আমি স্প্রিং বুট অ্যাপ্লিকেশনটিতে কাজ করছি যাতে এই উত্তরটি আমাকে সহায়তা করেছিল। আমি কীভাবে META-INF/MANIFEST.MFফাইল তৈরি করবেন তা ইতিমধ্যে জানতাম , তবে কীভাবে স্প্রিং-বুট তৈরি করবেন তা স্বয়ংক্রিয়ভাবে এটি পরিচালনা করে না।
বিশ্রান্ত

5
এই উত্তরটি হ্রাস করার কোনও কারণ আমি দেখতে পাচ্ছি না। আপনি যদি ব্যবহার না করে থাকেন তবে spring-bootএটিকে এড়িয়ে যান। স্ট্যাকওভারফ্লো আপনার নিজস্ব ইস্যু ভান্ডার তৈরি করতে সহায়তা করে যা আপনি প্রোগ্রামিংয়ের সময় মুখোমুখি হন।
বিশ্রান্ত

@ বিশিষ্ট আমি অন্যদের সম্পর্কে জানি না তবে আমি উজ্জীবিত হয়েছি কারণ এই উত্তরটি প্রশ্নের উত্থাপিত হওয়ায় এই প্রশ্নের সমাধান করে না। আপনার প্রশ্নের উত্তর দেওয়ার জন্য এটি সম্ভবত ঘটেছে , তবে আপনার প্রশ্নটি আসলে যা বলা হয়েছিল তা নয়।
বেন

@ নিশ্চিত হন তবে প্রশ্নটি একটি বিস্তৃত অর্থে নেওয়া যেতে পারে এবং এই উত্তরটি এর জন্য প্রযোজ্য এবং অন্যরা কখন বসন্ত বুট ব্যবহার করবে সে অর্থে সহায়তা করতে পারে।
বিশ্রান্ত

10

আমার আজ একই সমস্যা ছিল। আমার সমস্যাটি আমার উত্সাহিত মেটা-আইএনএফ রিসোর্স ফোল্ডারে সরানো হয়েছিল।


এটি আমার জন্যও কাজ করেছিল। আপনি যদি জেটব্রেইনস ইন্টেলিজজে ব্যবহার করছেন তবে এটি ব্যবহার করুন
নিকফট

থ্যাঙ্কিউ যা সত্যই আমার পক্ষে কাজ করেছিল :)
সৈয়দ মেহতাব হাসান

এটি আমার জন্য ইন্টেলিজ নিয়েও কাজ করেছিল। আপনি মানুষ ধন্যবাদ.
ওয়াকাস

10

আমি ঠিক এখন একই ত্রুটি পেয়েছি। আপনি যদি ব্যবহার করছেন gradleতবে আপনার পরবর্তীটিতে কেবল যুক্ত করুন gradle.build:

apply plugin: 'java'

jar {
    manifest {
        attributes 'Main-Class': 'com.company.project.MainClass'
    }
}

যেখানে পদ্ধতি com.company.project.MainClassসহ আপনার ক্লাসের পথে public static void main(String[] args)


এই আমাকে সাহায্য! গ্রেড টিউটোরিয়ালগুলি শীর্ষ স্তরের mainClassNameভেরিয়েবল সেটটি ব্যবহার করে নির্দিষ্ট করেছে , তবে এটি কেবল gradle runআদেশের সাহায্য করে , এক্সিকিউটেবল
.arar

8

MAVEN সমস্যাটি হ'ল আমাদের নিজস্ব ম্যানিফস্টের পরিবর্তে নির্ভরতা থেকে প্রথম গ্রন্থাগার থেকে প্রথম MANIFEST.MF ফাইল অন্তর্ভুক্ত করার চেষ্টা করুন M আপনি যখন শিল্পকর্ম ব্যবহার করেন তখন এমএফ!

  1. আপনারজার.জিপে আপনারজার.জারের নামকরণ করুন
  2. META-INF \ MANIFEST.MF থেকে MANIFEST.MF ফাইল খুলুন
  3. প্রকৃত MANIFEST.MF কে অনুলিপি করুন যা ইতিমধ্যে MAVEN দ্বারা আপনার প্রকল্পে উত্পন্ন হয়েছে যার মধ্যে কিছুটা অন্তর্ভুক্ত রয়েছে:

    ম্যানিফেস্ট-সংস্করণ: 1.0 প্রধান-শ্রেণি: yourpacket.yourmainclass (এক্সপ্লোরেশন তথ্য.ডাটা.মেনক্লাসের জন্য)

  4. এটির সাথে youjar.zip থেকে MANIFEST.MF এর সামগ্রীটি প্রতিস্থাপন করুন।

  5. Yourjar.zip এর নামকরণ করুন yourjar.jar এ ফিরে করুন।
  6. এখন java -jar yourjar.jar পুরোপুরি কাজ করুন।

বা!

সাধারণ আপনি নিজের মালিকানা তৈরি করুন। এমএফ এবং:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.2.0</version>
    <configuration>
        <archive>
            <manifestFile> Your path like: src/main/resources/META-INF/MANIFEST.MF </manifestFile>
            <index>true</index>
                <manifest>
                    <addClasspath>true</addClasspath>
                </manifest>
        </archive>
    </configuration>
</plugin>

তবে আপনি যদি মাভেন প্যানেল (বা maven কমান্ড লাইন) ব্যবহার করেন তবে আপনি এটিকে নিজের ম্যানিফেস্ট তৈরি করতে এবং জেআর ফাইলের মধ্যে অন্তর্ভুক্ত করতে বাধ্য করতে পারেন।

  1. আপনি এই কোডটি pom.xml এর বিল্ড বিভাগে যুক্ত করুন:

    <plugins>
        <plugin>
    
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.2.0</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
    
        <configuration>
            <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
    
            <archive>
    
                <index>true</index>
    
                <manifest>
                    <addClasspath>true</addClasspath>
                    <mainClass> yourpacket.yourmainclass (for exmaple info.data.MainClass)</mainClass>
                </manifest>
                <manifestEntries>
                    <mode>development</mode>
                    <url>${project.url}</url>
                </manifestEntries>
            </archive>
        </configuration>
    </plugin>

  2. MAVEN প্যানেলটি খুলুন (ইন্টেলিজ) এবং "ইনস্টল করুন" চালনা করুন। এটি MANIFEST ফাইল উত্পন্ন করবে এবং JAR ফাইলটি সমস্ত নির্ভরতার সাথে "লক্ষ্য" ফোল্ডারে সংকলন করবে। এছাড়াও এটি স্থানীয় মভেন সংগ্রহস্থলে ইনস্টল করা হবে।



5

আমি একই সমস্যার মুখোমুখি হয়েছি এবং এটি এখন ঠিক করা হয়েছে :) কেবল নীচের পদক্ষেপগুলি অনুসরণ করুন এবং ত্রুটি যে কোনও কিছুর জন্য হতে পারে, তবে নীচের পদক্ষেপগুলি প্রক্রিয়াটিকে মসৃণ করে তোলে। আমি ঠিক করতে অনেক সময় ব্যয় করি।

1. Eclipse পুনরায় চালু করার চেষ্টা করুন (যদি আপনি JAR ফাইলটি তৈরিতে Eclipse ব্যবহার করছেন) -> আসলে এটি আমার সমস্যাটিকে JAR ফাইলটি সঠিকভাবে রফতানিতে সহায়তা করেছিল।

২.গ্রহের পুনরারম্ভের পরে, আপনার গ্রহটি আপনার জাভা প্রকল্পের দ্বারা প্রধান শ্রেণি / পদ্ধতিটি সনাক্ত করতে সক্ষম কিনা তা দেখার চেষ্টা করুন -> ডান ক্লিক করুন -> হিসাবে চালান -> রান করুন কনফিগারেশন চালান -> প্রধান -> অনুসন্ধান বোতামে ক্লিক করুন আপনার গ্রহপটি জেআর ফাইলটিতে আপনার মূল শ্রেণীর জন্য অনুসন্ধান করতে সক্ষম কিনা তা দেখতে to -> এটি বৈধতার জন্য যা জেআর ফাইলের মূল শ্রেণিতে প্রবেশের পয়েন্ট থাকবে।

  1. এর পরে, আপনার জাভা ডায়নামিক প্রকল্পটি "রান্নেবল জেআর" ফাইল হিসাবে নয়, জেআর ফাইল হিসাবে রফতানি করুন।

  2. জাভা লঞ্চ কনফিগারেশনে আপনার মূল শ্রেণিটি চয়ন করুন।

  3. একবার জার ফাইলটি রফতানি করার পরে, কার্যকর করতে নীচের কমান্ডটি ব্যবহার করুন। java -cp [আপনার JAR] .জার [সম্পূর্ণ প্যাকেজ]। মেন ক্লাস যেমন: java -cp AppleTCRuleAudit.jar com.apple.tcruleaudit.classes.TCRuleAudit

  4. আপনি অসমর্থিত জাভা সংস্করণ ত্রুটির মুখোমুখি হতে পারেন। এই প্রকল্পটি গ্রহণে সংকলন করতে ব্যবহৃত জাভা সংস্করণটি মেলে আপনার শেল বাশ প্রোফাইলে জাভা_হোম পরিবর্তন করতে হবে fix

আশাকরি এটা সাহায্য করবে! আপনার যদি এখনও কোনও সমস্যা থাকে তবে দয়া করে আমাকে জানান।


5

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

  1. আপনি যদি .classপ্যাকেজগুলিতে আপনার ফাইলগুলি রাখতে চান তবে প্যাকেজটির শুরুতে যুক্ত করুন.java

    Test.java

    package testpackage;
    
    public class Test
    {
        ...
    }
  2. আপনার .classফাইলগুলি আপনার প্যাকেজের নাম ব্যবহারের দ্বারা প্রদত্ত কাঠামোর সাথে শেষ করে কোডটি সংকলন করতে:

    javac -d . Test.java

    -d .কম্পাইলার, ডিরেক্টরি অনুক্রমের যদি আপনি চান তৈরি করে তোলে।

  3. .jarফাইলটি প্যাকেজিংয়ের সময় , কীভাবে এটি প্যাক করতে হবে তার জন্য আপনাকে জারের রুটিন নির্দেশ করতে হবে। এখানে আমরা বিকল্প সেটটি ব্যবহার করি cvfeP। এটি প্যাকেজ কাঠামো (বিকল্প P) রাখা, এন্ট্রি পয়েন্টটি নির্দিষ্ট করা যাতে ম্যানিফেস্ট ফাইলটিতে অর্থবহ তথ্য (বিকল্প e) থাকে। বিকল্প fআপনাকে ফাইলের নাম নির্দিষ্ট করতে দেয়, বিকল্পটি cএকটি সংরক্ষণাগার তৈরি করে এবং বিকল্পটি vআউটপুটটিকে ভার্বোজের জন্য সেট করে। এখানে গুরুত্বপূর্ণ বিষয়গুলি লক্ষণীয় Pএবং তা e

    তারপরে আসে সেই জারের নাম যা আমরা চাই test.jar

    তারপরে এন্ট্রি পয়েন্ট আসে।

    এবং তারপরে -C . <packagename>/সেই ফোল্ডারটি থেকে ফোল্ডার কাঠামো সংরক্ষণ করে ক্লাস ফাইলগুলি পাওয়া যায়।

    jar cvfeP test.jar testpackage.Test -C . testpackage/
  4. আপনার পরীক্ষা করুন .jarজিপ প্রোগ্রামে ফাইলটি । এটির নিম্নলিখিত কাঠামো থাকা উচিত

    test.jar

    META-INF
    | MANIFEST.MF
    testpackage
    | Test.class

    MANIFEST.MF- এ নিম্নলিখিত থাকা উচিত

    Manifest-Version: 1.0
    Created-By: <JDK Version> (Oracle Corporation)
    Main-Class: testpackage.Test

    আপনি যদি নিজের ম্যানিফেস্টটি হাত দ্বারা সম্পাদনা করেন তবে শেষদিকে নিউলাইনটি রাখবেন তা নিশ্চিত করুন অন্যথায় জাভা এটি চিনতে পারে না।

  5. এর .jarসাথে আপনার ফাইলটি কার্যকর করুন

    java -jar test.jar

1
আপনার উত্তর 4 র্থ পদক্ষেপ খুব গুরুত্বপূর্ণ! আমার ম্যানিফেস্টটি সেই নিউলাইনটির কারণে কাজ করছে না শেষে আমি জানতাম না যে আমাকে রাখা উচিত। আমি এই বিষয়ে পরিদর্শন করা সমস্ত উত্তর (প্রচুর) এর উল্লেখ করা হয়নি, এবং যে কেউ মভেন, পিপীলিকা, গ্রেডেল ইত্যাদি ব্যবহার না করে তাদের জন্য বাধ্যতামূলক।
Maude

1
@ মাহেদ আপনাকে প্রতিক্রিয়া জানাতে ধন্যবাদ। কেন আমি সম্পর্কে newline গন্ধের সাথে উত্তর বলেন যে অবিকল এর সাহসী । একটি স্বয়ংক্রিয় উত্পন্ন উত্সাহের সাথে তুলনা করে আমি এটি খুঁজে না পাওয়া পর্যন্ত আমি বেশ কয়েকদিন সন্ধান করেছি।
কোডমনেকি

হাহ, ধন্যবাদ আমি কেবল সেই নতুন লাইনের জিনিসটিতে মাথা ঠেকছিলাম।
রিচার্ড টমাস

5

আমি ব্যক্তিগতভাবে এখানে সমস্ত উত্তর প্রশ্নের ভুল বোঝার জন্য মনে করি। এর উত্তরটি কীভাবে বসন্ত-বুট তৈরি করে jar সবাই জানে যে এরকম একটা স্পষ্ট, যা সবার থেকে পরিবর্তিত হয় গজিয়ে বুট সেটের asssumption যে এই একটি প্রমিত জার লঞ্চ, যা এটি বা হতে পারে না হল:

Start-Class: com.myco.eventlogging.MyService
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Version: 1.4.0.RELEASE
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_131
Main-Class: org.springframework.boot.loader.JarLauncher

সম্ভবত এটি org.springframework.boot.loader.JarLauncherক্লাসপাথে চালানো দরকার?


এটি আশাব্যঞ্জক মনে হচ্ছে। ক্লাসপথে আপনি জারল্যাঞ্চারকে ঠিক কীভাবে যুক্ত করবেন?
মার্কহু

4

যে কোনও এক্সিকিউটেবল জার ফাইলটি জাভা -জার অ্যাপ.জারের মতো কমান্ড প্রম্পটটি ক্লিক করে বা চালিত করে চালানো উচিত ("যদি জারের পাথের মধ্যে স্থান থাকে" - যেমন জাভা-জার "সি: \ ফোল্ডারের নাম \ অ্যাপ.জার") ব্যবহার করুন। যদি আপনার এক্সিকিউটেবল জারটি চলমান না থাকে, যার অর্থ এটি সঠিকভাবে তৈরি করা হয়নি।

আরও ভাল বোঝার জন্য, জার ফাইলটি বের করুন (বা উইন্ডোজ--জিপের জন্য দুর্দান্ত কোনও সরঞ্জাম ব্যবহার করে দেখুন) এবং / মেটা- আইএনএফ / ম্যানিফেসেস্ট.এমএফের অধীনে ফাইলটি পরীক্ষা করুন। কোন এন্ট্রি পেলে লাইক দিন

প্রধান-শ্রেণি: your.package.name.ClaaswithMain - তবে এটি ঠিক আছে, অন্যথায় আপনাকে এটি সরবরাহ করতে হবে।

MANIFEST.MF ফাইলে মেইন-ক্লাস এন্ট্রি সংযোজন সম্পর্কে সচেতন হন, আপনি এটি কোথায় সংরক্ষণ করছেন তা পরীক্ষা করুন!


4

আপনি কেবল এই পদক্ষেপটি অনুসরণ করতে পারেন ব্যবহার করে একটি জার ফাইল তৈরি করুন

 jar -cfm jarfile-name manifest-filename Class-file name

জার ফাইলটি চলাকালীন এভাবে চালান

 java -cp jarfile-name main-classname

4

আপনি সম্ভবত জার ফাইলটি সঠিকভাবে তৈরি করতে পারেন নি:

উদাহরণস্বরূপ: জার তৈরিতে বিকল্প মিস করা

নিম্নলিখিত কাজগুলি:

jar -cvfm MyJar.jar Manifest.txt *.class

4

আপনি যদি জারকে একত্র করার জন্য কমান্ড লাইনটি ব্যবহার করেন তবে ম্যানিফেস্ট ফাইলটি যুক্ত না করে মূল দিকে ইঙ্গিত করা সম্ভব। উদাহরণ:

jar cfve app.jar TheNameOfClassWithMainMethod *.class

(পরম "ই" এটি করে: TheNameOfClassWithMainMethod হল মেথড মেইন () এবং অ্যাপ.জার সহ শ্রেণীর একটি নাম - এক্সিকিউটেবল .জার এবং * .ক্লাসের নাম - একত্র করার জন্য কেবল সমস্ত ক্লাসের ফাইল)


3

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


3

উপরের উত্তরগুলি আমার জন্য কেবল আংশিক সহায়ক ছিল। java -cpউত্তরের অংশ ছিল, তবে ক্লাসটি চালানোর জন্য কীভাবে সনাক্ত করতে হবে সে সম্পর্কে আমার আরও নির্দিষ্ট তথ্য প্রয়োজন। আমার জন্য যা কাজ করেছে তা এখানে:

পদক্ষেপ 1: আমার চালনার জন্য প্রয়োজনীয় ক্লাসটি সন্ধান করুন

jar tf /path/to/myjar.jar | more

ফলাফলের শীর্ষ লাইনগুলি ছিল:

META-INF/
META-INF/MANIFEST.MF
somepath/
somepath/App.class
META-INF/maven/
...

App.class চালানোর জন্য প্রধান শ্রেণি রয়েছে। আমি 100% নিশ্চিত নই যদি আপনি সর্বদা আপনার প্রয়োজনীয় ক্লাসটি প্রথম অনুমান করতে পারেন তবে তা আমার জন্য ছিল। যদি এটি না হয় তবে আমি কল্পনা করতে পারি যে কোনও পরিচালনাযোগ্য আকারের নিচে ক্লাসের তালিকাটি পাঠানোর জন্য গ্রন্থাগার-সম্পর্কিত ফলাফলগুলি বাদ দেওয়ার জন্য গ্রেপ ব্যবহার করা খুব কঠিন নয়।

সেখান থেকে এটি সহজ ছিল: আমি কেবল সেই পথটি ব্যবহার করি (বিয়োগ ".ক্লাস" প্রত্যয়):

java -cp /path/to/myjar.jar somepath/App

এটি সর্বদা প্রথম শ্রেণি নয়। অতি বিরল. কমান্ড লাইন হওয়া উচিত java -cp ... somepackage.App
ব্যবহারকারী 207421

2

যেহেতু আপনি MANIFEST.MF যোগ করেছেন তাই আমার মনে হয় আপনার এই ফাইলের ক্ষেত্রের ক্রমটি বিবেচনা করা উচিত। আমার env হয় java version "1.8.0_91"

এবং আমার MANIFEST.MF এখানে হিসাবে

// MANIFEST.MF
Manifest-Version: 1.0
Created-By: 1.8.0_91 (Oracle Corporation)
Main-Class: HelloWorldSwing

// run
~ java -jar HelloWorldSwing.jar
no main manifest attribute, in HelloWorldSwing.jar

যাইহোক, এটি নীচে হিসাবে চালানো

Manifest-Version: 1.0
Main-Class: HelloWorldSwing
Created-By: 1.8.0_91 (Oracle Corporation)

//this run swing normally

অঁ্যা? অর্ডারটি অবিরাম। আপনি কী দাবি করছেন তা অস্পষ্ট করুন।
ব্যবহারকারী 207421

2

(প্রথম পোস্ট - সুতরাং এটি পরিষ্কার নাও হতে পারে)

এটি ওএস এক্স 11.6, মাভেন-ভিত্তিক নেটবিয়ান 8.2 প্রোগ্রামের জন্য আমার স্থির। এখন পর্যন্ত আমার অ্যাপটি 100% নেটবিন - কোনও টুইট করছে না (অসম্ভবের জন্য মাত্র কয়েকটি শেল পালিয়ে যায়!)।

এখানে এবং অন্য কোথাও বেশিরভাগ উত্তর চেষ্টা করেও কোনও লাভ হয়নি, আমি "কী কাজে আসে" ব্যবহারের শিল্পে ফিরে এসেছি।

এখানে শীর্ষ উত্তর ( অলিভিয়ের-রেফালো থানেক্স ) শুরু করার জন্য সঠিক জায়গার মতো দেখায় কিন্তু সহায়তা করেনি।

অন্যান্য প্রকল্পগুলি যা কাজ করেছিল তা দেখে, আমি প্রকাশিত লাইনে কিছু সামান্য পার্থক্য লক্ষ্য করেছি:

  1. #Classpath, classpathPrefix অনুপস্থিত ছিল (সেগুলি মুছে ফেলা হয়েছে)
  2. মেইনক্লাসটি "কম" অনুপস্থিত ছিল। (এনবি ব্যবহার করে -> প্রকল্পের বৈশিষ্ট্য-> রান-> প্রধান শ্রেণি-> উল্লেখ করতে ব্রাউজ করুন)

কেন জানি না (আমি জাভাতে মাত্র 3 মাসের মধ্যে আছি) বা কীভাবে, তবে এটি কেবল এটির কাজ করে বলতে পারেন।

এখানে ব্যবহৃত পরিবর্তিত মেনিফেস্ট ব্লকটি এখানে রয়েছে:

    <manifest>
        <mainClass>mypackage.MyClass</mainClass>
    </manifest>

2

খারাপ প্রকাশ্য প্রজন্মের জন্য আমি একটি নতুন সমাধান খুঁজে পেয়েছি!

  1. WinRAR এর মতো একটি জিপ সম্পাদক দিয়ে জার ফাইলটি খুলুন
  2. মেটা-আইএনএফ-এর জন্য ক্লিক করুন

  3. যোগ করুন বা সম্পাদনা করুন

    • যোগ করুন

      • মেটা-আইএনএফ নামে একটি ফোল্ডারে MANIFEST.MF নামে একটি পাঠ্য ফাইল তৈরি করুন এবং নিম্নলিখিত লাইনটি যুক্ত করুন:

        • প্রকাশ-সংস্করণ: 1.0
        • প্রধান-শ্রেণি: package.ex.com.views.mainClassName
      • ফাইলটি সংরক্ষণ করুন এবং এটি জিপতে যুক্ত করুন

    • সম্পাদনা:

      • পূর্ববর্তী লাইনটি যুক্ত করতে MANIFEST.MF পরিবর্তন করে ফাইলটি টেনে আনুন
  4. সেন্টিমিডি খুলুন এবং টাইপ করুন: জাভা-জার সি: /পাথ / জারনাম.জার

এটা এখন ঠিক কাজ করা উচিত!


2

বেশিরভাগ সমাধানগুলি আমার পক্ষে কাজ করে না তবে আমার প্রশিক্ষক আমাকে সাহায্য করেছিলেন আমি তার সমাধানটি এখানে ভাগ করতে চাই আমি কালি লিনাক্স টার্মিনালটি ব্যবহার করেছি তবে সমস্ত ডিবিয়ানে ঠিক থাকতে হবে

javac *.java
nano MANIFEST.MF

ফাইল টাইপ

প্রধান-শ্রেণি: আপনার প্রধান ফাইলের নাম প্রধান বা যাই হোক না কেন (এটি উপস্থিত থাকলে প্যাকেজের নাম যুক্ত করার বিষয়টি নিশ্চিত করুন)

jar -cvmf MANIFEST.MF new.jar *.class

এখন ফাইল ব্যবহার চালাতে

java -jar new.jar

অথবা আপনি ফাইলের প্রপটিসে গিয়ে পরীক্ষা করতে পারেন

প্রোগ্রাম হিসাবে ফাইল কার্যকর করার অনুমতি দিন

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

উপরের উত্তরগুলির বেশিরভাগ উত্তর না দেয়ায় এটি আমাকে সহায়তা করেছিল


1

আমার মতো আপনারও একই সমস্যা হতে পারে। আপনার .jar ফাইলটি তৈরি করার পরে লিখুন jar xf app.jar META-INF/MANIFEST.MF। এটি আপনার বর্তমান ডিরেক্টরিতে ফাইলটির একটি অনুলিপি তৈরি করবে যাতে আপনি এটি পড়তে পারেন। যদি এটি কেবল কিছু বলে:

প্রকাশ-সংস্করণ: 1.0

তৈরি করেছেন: 1.8.0_51 (ওরাকল কর্পোরেশন)

এবং এতে "মেইন-ক্লাস" ঘোষণা নেই, তবে আমি মনে করি আপনি নিজের সমস্যাটি পেয়েছেন found

তবে কীভাবে এটি সমাধান করা যায় তা আমি জানি না। আমি স্ট্যাকওভারফ্লোতে একই / অনুরূপ সমস্যাযুক্ত অন্যান্য ব্যক্তিদের চেক করেছি এবং উত্তর খুঁজে পাইনি। তবে এই তথ্যের সাহায্যে আপনি কিছুটা আরও ভাল সহায়তা পেতে পারেন (সত্য যে আপনি আমার মতো একই সমস্যাটি পেয়েছেন)।

সম্পাদনা: আমি একটি মেনিফেস্ট-ফাইল দিয়ে চেষ্টা করেছি কিন্তু এটি কাজ করতে পেলাম না, তবে আমার ভুলটি ছিল জার-ফাইল তৈরি করার সময় কেবলমাত্র একটি ক্লাসের নামকরণ করা। আমি পরিবর্তে * .class লিখেছিলাম এবং এটি এখন কাজ করে।

যদিও আমি জানি না কেন ম্যানিফেস্ট-ফাইল তৈরি করার প্রয়োজন আছে। তবে আমি অনুমান করি যতক্ষণ এটি কাজ করে ঠিক আছে।


1

আমার এই সমস্যাটি ছিল এবং আমি এটি নেটবিয়ান 8 এ করে সমাধান করেছি (নীচের চিত্রটি দেখুন):

নেটবিন প্রকল্পের বৈশিষ্ট্য

  1. সম্পত্তি যানআপনার প্রকল্পের ।
  2. রান ক্লিক করুন
  3. ব্রাউজ ব্যবহার করে আপনার প্রকল্পের প্রধান শ্রেণি নির্দিষ্ট করুন
  4. জার ফাইলটি তৈরি করুন এবং চালান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.