භාජනය ක්‍රියාත්මක කළ නොහැක: “ප්‍රධාන ප්‍රකාශිත ලක්ෂණයක් නොමැත”


1005

මම යෙදුමක් ස්ථාපනය කර ඇත, මම එය ක්‍රියාත්මක කිරීමට උත්සාහ කරන විට (එය ක්‍රියාත්මක කළ හැකි භාජනයක්) කිසිවක් සිදු නොවේ. මම එය විධාන රේඛාවෙන් ක්‍රියාත්මක කරන විට:

java -jar "app.jar"

මට පහත පණිවිඩය ලැබේ:

"app.jar" හි ප්‍රධාන ප්‍රකාශිත ලක්ෂණයක් නොමැත

සාමාන්‍යයෙන්, මම විසින්ම වැඩසටහන නිර්මාණය කර ඇත්නම්, මැනිෆෙස්ට් ගොනුවට ප්‍රධාන පන්තියේ ලක්ෂණයක් එක් කිරීමට ඉඩ තිබුණි. නමුත් මෙම අවස්ථාවේදී, ගොනුව යෙදුමකින් බැවින් මට එය කළ නොහැක. ප්‍රධාන පංතිය සොයාගත හැකිදැයි බැලීමට මම භාජනය නිස්සාරණය කිරීමට උත්සාහ කළෙමි, නමුත් බොහෝ පංති ඇති අතර ඔවුන්ගෙන් කිසිවෙකුට “ප්‍රධාන” යන වචනය එහි නමින් නොමැත. මෙය නිවැරදි කිරීමට ක්‍රමයක් තිබිය යුතුය, මන්දයත් වැඩසටහන වෙනත් පද්ධතිවල හොඳින් ක්‍රියාත්මක වන බැවිනි.


ප්රධාන ක්රම සොයා බලන්න; ඔබට පන්ති නම් මත විශ්වාසය තැබිය නොහැක.
ඩේව් නිව්ටන්

2
මම දනිමි, නමුත් මා සතුව ඇත්තේ .class ලිපිගොනු පමණක් බැවින් මට ක්‍රම දැකිය නොහැක. නැත්නම් මට පුළුවන්ද?
එව්ඩ්

ඔබ ඇත්තටම උපුටා දැක්වීම් ටයිප් කරන්නේ නැහැ නේද? ඕනෑම අවස්ථාවක, ක්‍රම බැලීමට ක්‍රම ගණනාවක් තිබේ, භාවිතා කිරීම ඇතුළත් වේ javap. ඔබට එය අවහිර කිරීමට අවශ්‍ය විය හැකි නමුත් ඇත්ත වශයෙන්ම කිසිදු ප්‍රකාශයක් නොමැතිදැයි බැලීමට.
ඩේව් නිව්ටන්

ආශ්‍රිත: පරායත්තතා සමඟ: stackoverflow.com/a/23986765/360211
වෙස්ටන්

CommandLineJobRunner
Kamini

Answers:


980

පළමුව, එය එක්තරා විකාරයකි, ඔබ දුවනවා දැකීම java -jar "app"නොවේjava -jar app.jar

දෙවනුව, භාජනයක් ක්‍රියාත්මක කිරීමට ... ඔබට META-INF / MANIFEST.MF නමින් ගොනුවක් භාජනය කළ යුතුය.

ගොනුවේම (අවම වශයෙන්) මෙම ලයිනර් තිබිය යුතුය:

Main-Class: com.mypackage.MyClass

පොදු ස්ථිතික අවලංගු ප්‍රධාන (String [] args) පිවිසුම් ස්ථානය com.mypackage.MyClassදරණ පන්තිය කොහිද?

CLI, Maven, Ant හෝ Gradle සමඟ මෙය සිදු කිරීමට ක්‍රම කිහිපයක් ඇති බව සලකන්න:

සඳහා වන පාබල , පහත සඳහන් විධානය කරන්නේ: (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>ඔබේ ව්‍යාපෘතියට සුදුසු එකක් තෝරන්න .)

සඳහා ආනා , පහත ඇබිත්ත උපකාර කළ යුතු:

<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
කුහුඹුවන්ගේ <manifest> <attribute name = "Main-class" value = "com.mypackage.MyClass" /> </manifest> <jar> මූලද්‍රව්‍යය තුළ
මයිකල් නියමන්ඩ්

1
ඔබට ස්තුතියි. මෙය භාවිතා කර ඔබට lib ෆෝල්ඩරයට පරායත්තයන් පිටපත් කළ හැකි බව එක් කිරීමට අවශ්‍යය: stackoverflow.com/a/996915/1121497 . පංති පථයට එම libෆෝල්ඩරය ඇතුළත් වන බැවින් ඔබට අවශ්‍ය වන්නේ භාජනය සමඟ පමණක් වන java -jar myproject.jarඅතර එය පරායත්තයන් සොයා ගනී.
ෆෙරාන් මේලින්ච්

4
"META-INF / MANIFEST.MF" නමින් ගොනුවක් භාජනය කරන්නේ කෙසේද? මට එක් අතකින් .ජාර් එකක් සහ අනෙක් පැත්තෙන් .එම්එෆ් එකක් තිබේ නම්, මම ඒවා එකට සම්බන්ධ කරන්නේ කෙසේද? මම මැනිෆෙස්ට් එක .jar ලෙස එකම ෆෝල්ඩරයක තැබුවද එය ක්‍රියා නොකරයි.
විසෙලෝ

4
Ise Wicelo භාජන ගොනුවක් සාදන අතරතුර නිශ්චිත MANIFEST.MF ගොනුවක් නියම කිරීමට භාජනය සඳහා m ධජය භාවිතා කරන්න . උදා. jar cmvf META-INF/MANIFEST.MF <new-jar-filename>.jar <files to include>
dvvrt

1
සටහන: මේවන් සඳහා, මා සතුව දැනටමත් maven-jar-pluginවීඑස්සී විසින් ජනනය කරන ලද මාවන් ගොනුවේ අයිතමයක් තිබුනි , එබැවින් මම එයට <configuration>කොටස එකතු කළෙමි .
ආරොන් ෆ්‍රෑන්ක්

290

java -jar app.jarවෙනුවට විය යුතුව තිබුණි java -jar "app".

මෙම -jarඑම බඳුන ගොනුව ක්රියාත්මක භාජනයක් ගොනු, එය සමඟ ප්රකාශ ගොනුව තිබිය යුතු, ඉන් අදහස් වන්නේ නම් විකල්පය පමණක් ක්රියා Main-Classඑය විශේෂණය. ක්‍රියාත්මක කළ හැකි JAR එකක් නිර්මාණය කරන්නේ කෙසේදැයි දැන ගැනීමට JAR ලිපිගොනු වල ඇසුරුම්කරණ වැඩසටහන් බලන්න .

එය ක්‍රියාත්මක කළ හැකි JAR එකක් නොවේ නම්, ඔබට පහත සඳහන් දේ සමඟ වැඩසටහන ක්‍රියාත්මක කිරීමට අවශ්‍ය වනු ඇත:

java -cp app.jar com.somepackage.SomeClass

වැඩසටහන ක්‍රියාත්මක කිරීමේ ක්‍රමය com.somepackage.SomeClassඅඩංගු පන්තිය කොහිද ? main(එම පන්තිය යනු වැඩසටහන මත රඳා පවතී, ඔබ සපයා ඇති තොරතුරු වලින් පැවසිය නොහැක).


4
ඔබගේ පිළිතුරට ස්තූතියි, නමුත් ඔබේ විසඳුම ක්‍රියාත්මක වන්නේ ප්‍රධාන ක්‍රමය අඩංගු පන්තියේ නම මා දන්නේ නම් පමණි. එය යතුරු ලියනයකි ... එය "app.jar" විය යුතුය. ගොනුව දෙවරක් ක්ලික් කිරීමෙන් එය වෙනත් පද්ධති මත ධාවනය වන්නේ මන්දැයි ඔබ පැහැදිලි කරන්නේ කෙසේද?
එව්ඩ්

එය සැබවින්ම ක්‍රියාත්මක කළ හැකි JAR එකක් නම්, ඔබට මැනිෆෙස්ට් ගොනුව උකහා ගත හැකිය (එය META-INFJAR ගොනුව තුළ ඇති නාමාවලියෙහි ඇත). එහි Main-Classප්‍රධාන පන්තියේ නම ඔබට ලබා දෙන ලක්ෂණයක් අඩංගු විය යුතුය .
ජෙස්පර්

එය එක් පද්ධතියක ක්‍රියාත්මක නොවන්නේ නම්, එම පද්ධතියට පැරණි ජාවා අනුවාදයක් තිබිය හැක. JAR උදාහරණයක් ලෙස ජාවා 7 සමඟ සම්පාදනය කර ඇත්නම්, ඔබට එය ජාවා 6 හෝ ඊට වැඩි පද්ධතියක් මත ධාවනය කළ නොහැක.
ජෙස්පර්

එය විහිළුවක් වන්නේ අනෙක් පද්ධතිය win7 ධාවනය වන අතර ගැටළු සහිත මෙම පරිගණකය win8 ධාවනය වන බැවිනි.
එව්ඩ්

2
Es ජෙස්පර් හෙලෝ, සූර්යග්‍රහණය පෙරනිමි පැකේජය භාවිතා කරන්නේ නම් කුමක් කළ යුතුද? මම පන්තියේ නම පමණක් ද?
ඕගන්

133

විකල්පයක් ලෙස, පහත උදාහරණයේ පෙන්වා ඇති පරිදි ඔබට මේවන්-එකලස්-ප්ලගිනය භාවිතා කළ හැකිය:

<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
සෙවන ප්ලගිනයේ සන්දර්භය තුළ, ක්‍රියාත්මක කළ හැකි JAR හි උපකාරය අනුගමනය කළ යුතුය .
කොප්පෝර්

3
මෙය maven-assembly-pluginවැඩ කිරීමත් සමඟ . maven-jar-pluginනැත.
මාර්ටිනාස් ජුසේවිසියස්

සටහන: මෙම කේතය ඔබේ pom.xmlගොනුවේ ඇතුලත <build><plugins> PUT IT HERE </plugins></build>තබා මේවන් පැකේජය ක්‍රියාත්මක කරන්න (IDEA විවෘත මේවන් ස්ලයිඩින් මෙනුවේ දකුණු පසින්, ව්‍යාපෘතිය> ජීවන චක්‍රය> පැකේජය සඳහා බලන්න). එවිට ඔබේ භාජන ගොනුව ඉලක්ක ෆෝල්ඩරයේ ඇත. චියර්ස්!
කිරිල් කර්මසින්

මම ඇත්තටම මෙම ගැටලුව සමඟ පොරබදමින් සිටියෙමි ... මෙය හොඳින් ක්‍රියාත්මක වේ. ස්තූතියි!
jmojico

61

එයට හේතුව 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.

රූප විස්තරය මෙහි ඇතුළත් කරන්න


36

මටත් ඒ ප්‍රශ්නයම තිබුණා. pom ගොනුවට පහත පේළි එක් කිරීමෙන් එය ක්‍රියාත්මක විය. ප්ලගිනය මඟින් ඔබගේ යෙදුමේ අවශ්‍ය සියලු පියවරයන් සැකසීමේ ක්‍රියාවලිය සහතික කරනු ඇත.

<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> spring-boot-maven-plugin </artifactId> <version> 2.0.1.RELEASE < / version> </plugin>
Tenflex

කණගාටුයි නමුත් එය විසඳුමක් නොවන්නේ ඔහු ස්ප්‍රිං බූට් ගැන කතා නොකරන නිසාය, එය භාජන ක්‍රියාත්මක කිරීමේ සාමාන්‍ය ගැටළුව වේ :)
ලැම්රින් ටව්ස්රාස්

ගොඩක් ස්තූතියි, මෙය වසන්ත ඇරඹුම සඳහා වූ ගැටළුව විසඳීය!
ඇලෙක්සැන්ඩර්

මම වසන්ත ඇරඹුම් 2.2.0 මත වැඩ කරමින් සිටිමි. අවාසනාවට, මෙම විසඳුම මට වැඩ කළේ නැත. කෙසේ වෙතත්, ඔබ <parent>...</parent>pom.xml හි යෙදුමකින් යොමු කළ විට එය ක්‍රියාත්මක වේ. මගේ අනුමානය නම්, අපි parentයෙදුමේ pom.xml වෙත ගියහොත් අපට පැහැදිලි අදහසක් ලැබෙනු ඇත.
tusar

මම අවසානයේදී චාරිත්රය සමඟ මගේ ගැටලුව විසඳුවා repackage-classifier. කරුණාකර docs.spring.io/spring-boot/docs/2.2.0.RELEASE/maven-plugin/…
tusar

31

Gradle පිළිතුර නම් මේ වගේ භාජනයක් / මැනිෆෙස්ට් / ගුණාංග සැකසුම එකතු කිරීමයි:

apply plugin: 'java'

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

1
මෙතෙක් ඇති සරලම පිළිතුර.
lasec0203

31

IntelliJ IDEA භාවිතා කරමින් භාජනයක් නිර්මාණය කිරීමේදී මට මෙම ගැටළුව ඇති විය. මෙම සාකච්ඡාව බලන්න .

මට එය විසඳා ගත හැකි වූයේ භාජන පුරාවස්තුව නැවත නිර්මාණය කිරීම, JAR> පරායත්තතා සහිත මොඩියුල වලින් තෝරා ගැනීම, නමුත් META-INF / MANIFEST.MF සඳහා පෙරනිමි නාමාවලිය භාර නොගැනීමයි. එය - / src / main / java සිට - / src / main / resources ලෙස වෙනස් කරන්න.

එසේ නොමැති නම් එය බඳුනේ මැනිෆෙස්ට් ගොනුවක් ඇතුළත් විය, නමුත් එය තිබිය යුතු - / src / main / java හි ඇති ගොනුව නොවේ.


මෙය IDEA 14.1.6 සමඟ මට වැඩ කළේය. මම pom.xml සඳහා ගොඩනංවන දේපලද එකතු කළ නමුත් එයින් කිසිදු බලපෑමක් සිදු නොවීය. නමුත් ඔබේ පිළිතුර එය විසඳුවා, ස්තූතියි.
lsrom

3
වෙන කිසිවක් වැඩ නොකිරීම පිළිබඳ මගේ බලාපොරොත්තු සුන්වීමෙන් මගේ ඩෙස්ක්ටොප් එක බේරා ගැනීමට ස්තූතියි;) ඔබේ සබැඳිය කැඩී ඇති බවක් පෙනේ, නමුත් මෙය පරිපූර්ණව ක්‍රියාත්මක වන බව මට තහවුරු කළ හැකිය. IntelliJ IDEA 2018.2.5 (ප්‍රජා සංස්කරණය) සමඟ පරීක්‍ෂා කරන ලදි
මතියස් Bö

මට / සම්පත් නාමාවලියක්
නොතිබුණද

29

මේවන් සඳහා, මෙය විසඳුවේ මෙයයි (මට නම්, GitHub හි වීටල් කේත පදනමක් සඳහා):

<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වූයේ සෙවන ප්ලගිනය ක්‍රියාත්මක කිරීමට ඉඩ නොදුන් නිසාය.
රේස්ටෝම්

25

බඳුන ඇතුළත් කිරීමට මෙම විධානය උත්සාහ කරන්න:

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

1
එක් ක්‍රමයක් නම් pom.xml හි ප්‍රධාන පන්තිය ඇතුළත් කර java -jar විධානය භාවිතා කිරීමයි, අනෙක් ක්‍රමය java -cp විධානය භාවිතා කිරීමයි.
ගෞරව් ඛාරේ

15

මට නම්, පිළිතුරු කිසිවක් සැබවින්ම උදව් කළේ නැත - ප්‍රධාන පංතිය සහ සෑම දෙයක්ම අඩංගු මැනිෆෙස්ට් ගොනුව නිවැරදි ස්ථානයේ මා සතුව තිබුණි. මාව පෙලඹවූයේ මෙයයි:

අවවාදයයි: ඔබ මැනිෆෙස්ට් නිර්මාණය කරන පෙළ ගොනුව නව රේඛාවක් හෝ ප්‍රවාහනයකින් අවසන් විය යුතුය. නව පේළියකින් හෝ කරත්ත ආපසු යැවීමකින් අවසන් නොවන්නේ නම් අවසාන පේළිය නිසි ලෙස විග්‍රහ නොකෙරේ.

( ප්‍රභවය ). මැනිෆෙස්ටයේ අවසානයේ නව රේඛාවක් එක් කිරීමෙන් එය සවි කර ඇත.


12

Maven භාවිතා කරන්නේ නම්, පහත දැක්වෙන දේ pom හි ඇතුළත් කරන්න

<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>

4
මෙය ස්ප්‍රින්ග් බූට් ව්‍යාපෘතියක් යැයි කීවේ කවුද?
james.garriss

2
@ james.garriss හොඳයි, මම කියන්නේ, මම මෙම ලිපියට පැමිණියේ no main manifest attributeදෝෂයක් සොයමින් නමුත් මම වසන්ත ඇරඹුම් යෙදුම මත වැඩ කරමින් සිටින බැවින් මෙම පිළිතුර මට උපකාර විය. META-INF/MANIFEST.MFගොනුව නිර්මාණය කරන්නේ කෙසේදැයි මම දැනටමත් දැන සිටියෙමි , නමුත් වසන්ත-ඇරඹුම් ස්වයංක්‍රීයව එය හසුරුවන්නේ කෙසේද යන්න නොවේ.
විශ්රාන්ත්

6
මෙම පිළිතුර අවතක්සේරු කිරීමට කිසිදු හේතුවක් මා දකින්නේ නැත. ඔබ භාවිතා නොකරන්නේ spring-bootනම් එය නොසලකා හරින්න. ක්‍රමලේඛනය කිරීමේදී ඔබ මුහුණ දෙන ඔබේම නිකුතුවක් ගොඩනඟා ගැනීමටද Stackoverflow උපකාරී වේ.
විශ්රාන්ත්

Is විශ්රාන්ත් මම අන් අය ගැන නොදන්නා නමුත් මම පහත් කොට සැලකුවේ මෙම පිළිතුර එම ප්‍රශ්නය මතු වූ ආකාරයට ආමන්ත්‍රණය නොකරන බැවිනි. එය ඇති ඒ සිද්ධ ඔබේ ප්රශ්නයට පිළිතුරු දීමට, නමුත් ඔබේ ප්රශ්නය ඇත්තටම ඉල්ලා සිටි දේ නොවේ.
බේන්

Ane විශ්වාසයි. නමුත් ප්‍රශ්නය පුළුල් අර්ථයකින් ගත හැකි අතර මෙම පිළිතුර එයට අදාළ වන අතර වසන්ත ඇරඹුම භාවිතා කරන විට අනෙක් අයට අර්ථයෙන් එය උපකාර කළ හැකිය.
විෂ්රන්ත්

12

MAVEN ගැටළුව නම්, අපගේම MANIFEST.MF වෙනුවට පරායත්තයන්ගෙන් පළමු පුස්තකාලයෙන් පළමු MANIFEST.MF ගොනුව ඇතුළත් කිරීමට උත්සාහ කිරීමයි. ඔබ කලාකෘති භාවිතා කරන විට! .

  1. Yourjar.jar yourjar.zip ලෙස නම් කරන්න
  2. META-INF \ MANIFEST.MF වෙතින් MANIFEST.MF ගොනුව විවෘත කරන්න
  3. MAVEN විසින් ඔබේ ව්‍යාපෘතියේ දැනටමත් ජනනය කර ඇති සැබෑ MANIFEST.MF පිටපත් කරන්න.

    ප්‍රතිපත්ති ප්‍රකාශනය: 1.0 ප්‍රධාන පංතිය: yourpacket.yourmainclass (exmaple info.data.MainClass සඳහා)

  4. MANIFEST.MF හි අන්තර්ගතය youjar.zip වෙතින් ප්‍රතිස්ථාපනය කරන්න.

  5. Yourjar.zip ඔබේjar.jar ලෙස නැවත නම් කරන්න.
  6. දැන් java -jar yourjar.jar පරිපූර්ණව වැඩ කරන්න.

හෝ!

සරල ලෙස ඔබ සතුව MANIFEST.MF සහ:

<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 panel (හෝ maven විධාන රේඛාව) භාවිතා කරන්නේ නම්, ඔබට එය මැනිෆෙස්ට් උත්පාදනය කර JAR ගොනුවට ඇතුළත් කිරීමට බල කළ හැකිය.

  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 පැනලය විවෘත කරන්න (Intellij හි) සහ "ස්ථාපනය කරන්න" ක්‍රියාත්මක කරන්න. එය MANIFEST ගොනුව ජනනය කරන අතර දේපල JAR ගොනුව සියලු පරායත්තතාවයන් සමඟ "ඉලක්ක" ෆෝල්ඩරයට සම්පාදනය කරනු ඇත. එසේම එය දේශීය මේවන් ගබඩාවට ස්ථාපනය කෙරේ.


11

මට අදත් ඒ ප්‍රශ්නයම තිබුණා. META-INF සම්පත් ෆෝල්ඩරයට ගෙනයාම මගේ ගැටළුව විසඳීය.


මෙය මටත් වැඩ කළා. ඔබ ජෙට්බ්‍රේන්ස් ඉන්ටෙලිජේ භාවිතා කරන්නේ නම් එය උත්සාහ කරන්න
නික්සොෆ්ට්

10

මට දැන් එකම දෝෂයක් තිබේ. ඔබ භාවිතා කරන්නේ නම් gradle, ඊළඟ එක ur ර් තුළට එක් කරන්න 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එය ක්‍රියාත්මක වන්නේ ක්‍රියාත්මක කළ හැකි විධානයක් සමඟ පමණක් නොව
.jar


5

මම එකම ගැටලුවකට මුහුණ දුන් අතර එය දැන් නිවැරදි කර ඇත :) පහත පියවර අනුගමනය කරන්න, දෝෂය ඕනෑම දෙයකට විය හැකිය, නමුත් පහත පියවර මඟින් ක්‍රියාවලිය වඩාත් සුමට කරයි. නිවැරදි කිරීම සොයා ගැනීමට මම බොහෝ කාලයක් ගත කරමි.

1. සූර්යග්‍රහණය නැවත ආරම්භ කිරීමට උත්සාහ කරන්න (ඔබ ගොඩනඟන ලද JAR ගොනුව සඳහා සූර්යග්‍රහණය භාවිතා කරන්නේ නම්) -> ඇත්ත වශයෙන්ම මෙය JAR ගොනුව නිසියාකාරව අපනයනය කිරීමේදී මගේ ගැටලුවට උපකාරී විය.

2. සූර්යග්‍රහණය නැවත ආරම්භ කිරීමෙන් පසු, ඔබේ ජාවා ව්‍යාපෘතිය මඟින් ප්‍රධාන පන්තිය / ක්‍රමය හඳුනා ගැනීමට ඔබේ සූර්යග්‍රහණයට හැකි දැයි බැලීමට උත්සාහ කරන්න -> දකුණු ක්ලික් කරන්න -> ධාවනය කරන්න -> වින්‍යාසයන් ක්‍රියාත්මක කරන්න -> ප්‍රධාන -> සෙවුම් බොත්තම ක්ලික් කරන්න ඔබේ සූර්යග්‍රහණයට JAR ගොනුවේ ඔබේ ප්‍රධාන පන්තිය සොයා ගත හැකිදැයි බැලීමට. -> මෙය JAR ගොනුවට ප්‍රධාන පන්තියට ඇතුළත් වීමේ ලක්ෂ්‍යය ඇති බව තහවුරු කිරීම සඳහා වේ.

  1. මෙයින් පසු, ඔබේ ජාවා ඩයිනමික් ව්‍යාපෘතිය "ධාවනය කළ හැකි JAR" ගොනුවක් ලෙස අපනයනය කරන්න, නමුත් JAR ගොනුව නොවේ.

  2. ජාවා දියත් කිරීමේ වින්‍යාසය තුළ, ඔබේ ප්‍රධාන පන්තිය තෝරන්න.

  3. භාජන ගොනුව අපනයනය කළ පසු, ක්‍රියාත්මක කිරීමට පහත විධානය භාවිතා කරන්න. java -cp [ඔබේ JAR] .jar [සම්පූර්ණ පැකේජය] .MainClass උදා: java -cp AppleTCRuleAudit.jar com.apple.tcruleaudit.classes.TCRuleAudit

  4. සහාය නොදක්වන ජාවා අනුවාදයේ දෝෂයට ඔබ මුහුණ දිය හැකිය. විසඳුම නම් සූර්යග්‍රහණයෙන් ව්‍යාපෘතිය සම්පාදනය කිරීමට භාවිතා කරන ජාවා අනුවාදයට ගැලපෙන පරිදි ඔබේ ෂෙල් බෑෂ් පැතිකඩෙහි ඇති java_home වෙනස් කිරීමයි.

මෙය උපකාරී වේ යැයි සිතමු! ඔබට තවමත් ගැටළු තිබේ නම් කරුණාකර මට දන්වන්න.


5

.Jar එකලස් කිරීම සඳහා ඔබ විධාන රේඛාව භාවිතා කරන්නේ නම්, මැනිෆෙස්ට් ගොනුව එක් නොකර ප්‍රධාන දෙසට යොමු කළ හැකිය. උදාහරණයක්:

jar cfve app.jar TheNameOfClassWithMainMethod *.class

("ඊ" පරාමිතිය එසේ කරයි: TheNameOfClassWithMainMethod යනු ප්‍රධාන () ක්‍රමය සහිත පන්තියේ නමකි.


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 වන පියවර ඉතා වැදගත් වේ! මගේ මැනිෆෙස්ට් එක ක්‍රියා විරහිත වූයේ එම නව රේඛාව අවසානයේ මා තැබිය යුතු බව මා නොදැන සිටි බැවිනි. මෙම මාතෘකාව පිළිබඳ මා සංචාරය කළ සියලුම පිළිතුරු (බොහෝ දේ) මේ ගැන සඳහන් නොකළ අතර කිසිවෙකු මේවන්, කුහුඹුවන්, ග්‍රැඩ්ල් සහ වෙනත් දේ භාවිතා නොකිරීම අනිවාර්ය වේ.
මවුඩ්

1
A ප්‍රතිචාර සඳහා ස්තූතියි. අළුත් රේඛීය ඉඟිය සමඟ මම තද අකුරින් පිළිතුර එකතු කළේ එබැවිනි . ස්වයංක්‍රීයව ජනනය කරන ලද මැනිෆෙස්ටයක් සමඟ සංසන්දනය කිරීමෙන් මෙය සොයා ගන්නා තෙක් මම දින ගණනක් බලා සිටියෙමි.
CodeMonkey

හාහ්, ස්තූතියි. මම ඒ අළුත් දෙයට හිස ගසාගෙන සිටියෙමි.
රිචඩ් තෝමස්

5

මම පෞද්ගලිකව සිතන්නේ මෙහි ඇති සියලුම පිළිතුරු ප්‍රශ්නය වැරදි ලෙස වටහාගෙන ඇති බවයි. මෙයට පිළිතුර වසන්ත-ඇරඹුම .jar ගොඩනඟන ආකාරයෙහි වෙනසයි. ස්ප්‍රිං බූට් විසින් මේ වගේ මැනිෆෙස්ටයක් සකසා ඇති බව කවුරුත් දනිති , මෙය සම්මත .ජාර් දියත් කිරීමක් බව සෑම දෙනාගේම උපකල්පනයන්ට වඩා වෙනස් වේ .

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පන්ති මාවතේ ක්‍රියාත්මක කළ යුතුද?


මෙය හොඳ බලාපොරොත්තුවක්. ඔබ හරියටම JarLauncher පන්තියේ මාවතට එකතු කරන්නේ කෙසේද?
මාර්ක්හූ

4

ක්‍රියාත්මක කළ හැකි ඕනෑම භාජන ගොනුවක් ක්‍රියාත්මක විය යුත්තේ java -jar app.jar වැනි විධාන විමසුමක් භාවිතා කර ක්ලික් කිරීමෙන් හෝ ධාවනය කිරීමෙන් ය. ඔබේ ක්‍රියාත්මක කළ හැකි බඳුන ක්‍රියාත්මක නොවන්නේ නම්, එයින් අදහස් වන්නේ එය නිසියාකාරව නිර්මාණය වී නොමැති බවයි.

වඩා හොඳ අවබෝධයක් සඳහා, භාජන ගොනුව උපුටා ගන්න (හෝ ඕනෑම මෙවලමක් භාවිතා කර බලන්න, වින්ඩෝස් 7-සිප් සඳහා එය කදිම එකක්) සහ /META-INF/MANIFEST.MF යටතේ ගොනුව පරීක්ෂා කරන්න. ඔබ වැනි ප්‍රවේශයක් සොයා ගන්නේ නම්

ප්‍රධාන පන්තිය: your.package.name.ClaaswithMain - එවිට එය හොඳයි, එසේ නොමැතිනම් ඔබ එය ලබා දිය යුතුයි.

MANIFEST.MF ගොනුවේ ප්‍රධාන පංතියේ ඇතුළත් කිරීම ගැන සැලකිලිමත් වන්න, ඔබ එය ඉතිරි කරන්නේ කොතැනදැයි පරීක්ෂා කරන්න!


4

ඔබට මෙම පියවර සරලව අනුගමනය කළ හැකිය

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

භාජන ගොනුව ධාවනය කරන අතරතුර මේ ආකාරයට සරල ධාවනය කරන්න

 java -cp jarfile-name main-classname

4

ඔබ භාජන ගොනුව නිසියාකාරව නිර්මාණය නොකරන්නට ඇත:

උදා: භාජන සෑදීමේදී m විකල්පය අස්ථානගත වී ඇත

පහත සඳහන් ක්‍රියා:

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

3

මට නම් මෙම දෝෂය ඇති වූයේ මට අවශ්‍ය වූයේ ධාවනය කළ හැකි භාජන ගොනුවක් මිස සරල පුස්තකාල භාජන ගොනුවක් නොවන බව සූර්යග්‍රහණයට පැවසීම මට අමතක වූ බැවිනි. එබැවින් ඔබ සූර්යග්‍රහණයේ භාජන ගොනුව නිර්මාණය කරන විට නිවැරදි රේඩියෝ බොත්තම ක්ලික් කිරීමට වග බලා ගන්න


3

ඉහත පිළිතුරු මට ප්‍රයෝජනවත් වූයේ අර්ධ වශයෙන් පමණි. java -cpපිළිතුරේ කොටසක් විය, නමුත් පන්තිය ක්‍රියාත්මක කිරීමට හඳුනා ගන්නේ කෙසේද යන්න පිළිබඳ වඩාත් නිශ්චිත තොරතුරු මට අවශ්‍ය විය. මෙන්න මට වැඩ කළ දේ:

පියවර 1: මට ධාවනය කිරීමට අවශ්‍ය පන්තිය සොයා ගන්න

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

ප්‍රති result ලයේ ඉහළ රේඛා වූයේ:

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

App.class ක්‍රියාත්මක කිරීමට ප්‍රධාන පන්තිය අඩංගු විය. ඔබට අවශ්‍ය පංතිය පළමුවැන්න යැයි ඔබට සැමවිටම උපකල්පනය කළ හැකිදැයි මට 100% විශ්වාස නැත, නමුත් එය මට විය. එය එසේ නොවේ නම්, පන්ති ලැයිස්තුව කළමනාකරණය කළ හැකි ප්‍රමාණයකට අඩු කිරීම සඳහා පුස්තකාල ආශ්‍රිත ප්‍රති results ල බැහැර කිරීම සඳහා grep භාවිතා කිරීම එතරම් අපහසු නොවන බව මම සිතමි.

එතැන් සිට එය පහසු විය: මම එම මාර්ගය භාවිතා කරමි (".class" උපසර්ගය us ණ කිරීම):

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

එය සැමවිටම පළමු පන්තිය නොවේ. කවදාවත් නැති තරම්. විධාන රේඛාව විය යුතුය java -cp ... somepackage.App.
මාර්ක්විස් ඔෆ් ලෝර්න්

3

නරක ප්‍රකාශිත පරම්පරාවට මම නව විසඳුමක් සොයා ගතිමි!

  1. WinRAR වැනි zip සංස්කාරකයක් සමඟ භාජන ගොනුව විවෘත කරන්න
  2. META-INF සඳහා ක්ලික් කරන්න

  3. එකතු කරන්න හෝ සංස්කරණය කරන්න

    • එකතු කරන්න:

      • META-INF නමින් ෆෝල්ඩරයක MANIFEST.MF නමින් පෙළ ගොනුවක් සාදා පහත පේළිය එක් කරන්න:

        • ප්‍රතිපත්ති ප්‍රකාශනය: 1.0
        • ප්‍රධාන පන්තිය: package.ex.com.views.mainClassName
      • ගොනුව සුරකිමින් එය zip එකට එක් කරන්න

    • සංස්කරණය කරන්න:

      • පෙර පේළිය එක් කිරීමට ගොනුව පිටතට ඇද දමන්න MANIFEST.MF වෙනස් කරන්න
  4. Cmd විවෘත කර ටයිප් කරන්න: java -jar c: /path/JarName.jar

එය දැන් හොඳින් ක්‍රියාත්මක විය යුතුයි!


2

ඔබ MANIFEST.MF එකතු කර ඇති බැවින්, මෙම ගොනුවේ ක්ෂේත්‍ර අනුපිළිවෙල සලකා බැලිය යුතු යැයි මම සිතමි. මගේ ඊවා 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

එහ්? ඇණවුම වැදගත් නැත. ඔබ කියා සිටින්නේ කුමක්ද යන්න පැහැදිලි නැත.
මාර්ක්විස් ඔෆ් ලෝර්න්

2

(පළමු පෝස්ට් - එබැවින් එය පිරිසිදු නොවිය හැක)

OS X 11.6, Maven පදනම් කරගත් Netbeans 8.2 වැඩසටහන සඳහා මෙය මගේ විසඳුමයි. මේ දක්වා මගේ යෙදුම 100% නෙට්බීන්ස් - කරකැවීමක් නැත (කළ නොහැකි දේ සඳහා ෂෙල් කිහිපයක් පමණක් ගැලවී යයි!).

මෙහි සහ වෙනත් තැන්වල ඇති බොහෝ පිළිතුරු වලින් කිසිදු ප්‍රයෝජනයක් නොතිබූ මම නැවත "වැඩ කරන දේ භාවිතා කරන්න" කලාවට යොමු වීමි.

මෙහි ඉහළම පිළිතුර ( ඔලිවියර්-රීෆලෝ තෑන්ක්ස්) ආරම්භ කිරීමට සුදුසුම ස්ථානය මෙන් පෙනුනද උදව් නොකළේය.

වැඩ කළ වෙනත් ව්‍යාපෘති දෙස බැලූ විට, ප්‍රකාශිත රේඛාවල සුළු වෙනස්කම් කිහිපයක් මම දුටුවෙමි.

  1. addClasspath, classpathPrefix නොමැති විය (ඒවා මකා දමන ලදි)
  2. mainClass හි "com" අතුරුදහන් විය. (NB -> ව්‍යාපෘති ගුණාංග-> ධාවනය-> ප්‍රධාන පන්තිය-> පිරික්සීමට භාවිතා කරන්න)

(මම ජාවා වලට පැමිණ ඇත්තේ මාස 3 ක් පමණි) හෝ කෙසේද යන්න නිශ්චිත නැත, නමුත් මෙය වැඩ කළ බව පමණක් පැවසිය හැකිය.

භාවිතා කරන ලද නවීකරණය කරන ලද මැනිෆෙස්ට් බ්ලොක් මෙන්න:

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

2

එක් කරුණක් පැහැදිලි කිරීම සඳහා

Main-Class: <packagename>.<classname>

ඔබට පැකේජයක් නොමැති නම්, එම කොටස නොසලකා හැරිය යුතුය, මේ ආකාරයට:

Main-Class: <classname>

මම ඡන්දය ප්‍රකාශ කිරීමේ වරදක් මෙහි තිබේද?
රෙහාන්_අම්න්

1

මා හා සමාන ගැටලුවක් ඔබට තිබිය හැකිය. ඔබගේ .jar ගොනුව නිර්මාණය කිරීමෙන් පසු ලියන්න jar xf app.jar META-INF/MANIFEST.MF. මෙය ඔබගේ වර්තමාන නාමාවලියට ගොනුවේ පිටපතක් නිර්මාණය කරනු ඇති අතර එවිට ඔබට එය කියවිය හැකිය. එය එවැනි දෙයක් පමණක් පවසන්නේ නම්:

ප්‍රතිපත්ති ප්‍රකාශනය: 1.0

නිර්මාණය කළේ: 1.8.0_51 (ඔරකල් කෝපරේෂන්)

සහ "ප්‍රධාන පංතියේ" ප්‍රකාශය අඩංගු නොවේ, එවිට මම සිතන්නේ ඔබ ඔබේ ගැටලුව සොයා ගත් බවයි.

එය විසඳන්නේ කෙසේදැයි මම නොදනිමි. මම StackOverflow හි සමාන / සමාන ගැටළු ඇති වෙනත් පුද්ගලයින් පරීක්ෂා කළ අතර පිළිතුරක් සොයාගත නොහැකි විය. කෙසේ වෙතත් මෙම තොරතුරු සමඟ ඔබට වඩා හොඳ උදව් ලබා ගත හැකිය (ඔබට මා හා සමාන ගැටලුවක් ඇති බව සලකන විට).

සංස්කරණය කරන්න: මම මැනිෆෙස්ට් ගොනුවක් සමඟ උත්සාහ කර ඇති නමුත් එය ක්‍රියාත්මක වීමට නොහැකි විය, නමුත් මගේ වැරැද්ද වූයේ භාජන ගොනුව නිර්මාණය කිරීමේදී එක් පන්තියක් පමණක් නම් කිරීමයි. මම ඒ වෙනුවට *. ක්ලාස් ලියා ඇති අතර එය දැන් ක්‍රියාත්මක වේ.

මැනිෆෙස්ට් ගොනුවක් සෑදීමේ අවශ්‍යතාවයක් ඇත්තේ මන්දැයි මම නොදනිමි. නමුත් මම හිතන්නේ එය ක්‍රියාත්මක වන තාක් කල් එය හොඳයි.


1

මට මෙම ගැටළුව ඇති අතර මෑතකදී නෙට්බීන්ස් 8 හි මෙය කිරීමෙන් මම එය විසඳා ගත්තෙමි (පහත රූපය බලන්න):

නෙට්බීන්ස් ව්‍යාපෘති දේපල

  1. දේපල වෙත යන්නඔබේ ව්‍යාපෘතියේ .
  2. Run මත ක්ලික් කරන්න .
  3. බ්‍රවුස් භාවිතයෙන් ඔබේ ව්‍යාපෘතියේ ප්‍රධාන පන්තිය සඳහන් කරන්න .
  4. ගොඩ නැඟීමට හා ක්රියාත්මක වන භාජනයක් ගොනුව.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.