亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法執行jar-file:“無主清單屬性”

無法執行jar-file:“無主清單屬性”

海綿寶寶撒 2019-06-13 19:21:00
無法執行jar-file:“無主清單屬性”我已經安裝了一個應用程序,當我試圖運行它(它是一個可執行的JAR)時,什么都不會發生。當我從命令行運行它時:JavaJAR“app.jar”我收到以下信息:在“app.jar”中沒有主清單屬性通常,如果我自己創建了程序,我就會向清單文件中添加一個主類屬性。但是在這種情況下,由于文件來自應用程序,所以我不能這樣做。我還試著提取JAR,看看是否能找到主類,但是很多類都有,而且沒有一個類的名稱中有“main”這個詞。必須有一種方法來解決這個問題,因為該程序在其他系統上運行良好。
查看完整描述

3 回答

?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

首先,看到你逃跑有點奇怪java -jar "app"而不是java -jar app.jar

第二,要使JAR可執行.。您需要打開一個名為meta-INF/MANIFEST.MF的文件。

文件本身應該有(至少)這個襯墊:

Main-Class: com.mypackage.MyClass

哪里com.mypackage.MyClass類是否持有公共靜態空主(String[]args)進入點。

請注意,有幾種方法可以通過CLI、Maven、Ant或Gradle來完成:

克萊,將執行以下命令:(tks@vvrtjar cmvf META-INF/MANIFEST.MF <new-jar-filename>.jar  <files to include>

馬文,類似于下面的片段應該可以做到這一點。請注意,這只是插件的定義,而不是完整的。柚木:

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

邁克爾·尼曼德-

梯度:

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


查看完整回答
反對 回復 2019-06-13
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

那應該是java -jar app.jar而不是java -jar "app".

這個-jar選項只在JAR文件是可執行的JAR文件時才有效,這意味著它必須有一個帶有Main-Class屬性在里面??匆?/trans>JAR文件中的打包程序學習如何創建可執行的JAR。

如果它不是一個可執行的JAR,那么您需要運行這個程序,如下所示:

java -cp app.jar com.somepackage.SomeClass

哪里com.somepackage.SomeClass是包含main方法來運行程序。(這個類取決于程序,從您提供的信息來看是不可能知道的)。


查看完整回答
反對 回復 2019-06-13
?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

或者,您可以使用maven程序集插件,如下面的示例所示:

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

在本例中,節中指定的所有依賴JAR都將自動包含在單個JAR中。請注意,JAR與-依賴關系應該按字面順序放置為,而不是替換為您想要包含的JAR文件名。


查看完整回答
反對 回復 2019-06-13
  • 3 回答
  • 0 關注
  • 721 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號