2016-04-21 115 views
0

在Intellij中,我能夠「構建一個工件」,它允許我創建一個jar文件,即使我的項目使用其他jar文件(如驅動程序)。傳統上,我將通過把它們放在我的類路徑,像這樣編譯JAR依賴一個項目:使用jar創建java項目到一個jar(命令行)

javac -cp .:dependency.jar Main.java 

,然後可以通過執行運行Main

java -cp .:dependency.jar Main 

我的問題是,我該怎麼辦用這個新的Main創建一個jar文件文件?我可以這樣做:

jar cvf Main.jar Main.java 

,這將創造一個jar文件,但它不運行,並說:

no main manifest attribute, in Main.jar 

我想知道如何包裝我的其他jar依賴到上可執行罐。

回答

1

選項1:使用Maven插件如果你正在使用maven:

 <plugin> 
      <artifactId>maven-jar-plugin</artifactId> 
      <configuration> 
       <archive> 
        <manifest> 
         <mainClass>Path.to.your.main.class</mainClass> 
         <addClasspath>true</addClasspath> 
        </manifest> 
       </archive> 
      </configuration> 
     </plugin> 

選項2:使用Spring啓動創建脂肪罐子。其中包括所有相關的jar文件。確保你包含spring引導依賴。

 <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
      <version>1.3.3.RELEASE</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>repackage</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

方案3:沒有Maven和春天有任何幫助:

創建包含以下內容的manifest.txt文件:

Main-Class: path.to.your.main.class 

要創建的jar use命令:jar -cvfm Application.jar manifest.txt /path/to/*.class