方法一:直接使用Eclipse自帶的導出功能演熟,步驟如下:
1. 選擇工程频敛,右鍵選擇導出帮哈,選擇Java-可執(zhí)行jar文件
2. 點擊Next膛檀,選擇保存路徑,Library handling默認選擇第一個即可(關于Library handing3個選項的區(qū)別可以自己百度)
3. Win+R進入窗口,進入到生成的jar包所在目錄下
4. 執(zhí)行java -jar? xxxx.jar 即可
方法二:使用Maven打包
1. pom中加入如下依賴:
<plugin>
? ? ? ? ? <artifactId>maven-assembly-plugin</artifactId>
? ? ? ? ? <version>2.4.1</version>
? ? ? ? ? <configuration>
? ? ? ? <!-- get all project dependencies -->
? ? ? ? ? ? <descriptorRefs>
? ? ? ? ? ?? <descriptorRef>jar-with-dependencies</descriptorRef>
? ? ?? ? ? </descriptorRefs>
? ? ? ? ? <!-- MainClass in mainfest make a executable jar -->
? ? ? ? ? ? <archive>
? ? ? ? ? ? ? <manifest>
? ? ? ? ? ? ? ? <!-- 指定主類咖刃,包名+類名 -->
? ? ? ? ? ? ? ? <mainClass>com.xxxx.lszt.Application</mainClass>
? ? ? ? ? ? ? </manifest>
? ? ? ? ? ? </archive>
? ? ? ? ? </configuration>
? ? ? ? ? <executions>
? ? ? ? ? ? <execution>
? ? ? ? ? ? ? <id>make-assembly</id>
? ? ? ? ? ? ? <!-- 綁定到package命令的生命周期上 -->
? ? ? ? ? ? ? <phase>package</phase>
? ? ? ? ? ? ? <goals>
? ? ? ? ? ? ? ? <!-- 只運行一次 -->
? ? ? ? ? ? ? ? <goal>single</goal>
? ? ? ? ? ? ? </goals>
? ? ? ? ? ? </execution>
? ? ? ? ? </executions>
? ? ? ? </plugin>
2. 選中項目泳炉,右鍵選擇Run As-》Maven build
使用Maven命令打包(clean package -Dmaven.test.skip=true)嚎杨,直接點擊Run即可
3. 打包完成之后可以在target文件夾中看到2個版本jar包,分別為帶依賴jar包的版本(lszt-jar-with-dependencies)和不帶依賴jar包的版本(lszt)
4. Win+R進入窗口,進入到生成的jar包所在目錄下
5. 執(zhí)行java -jar? xxxx.jar 即可
正常步驟描述完了容贝,接下來總結下使用Maven打包過程中遇到的坑:
1. 在pom中配置了主類自脯,但是使用Eclipse的Maven install打包,打完的jar解壓之后發(fā)現MANIFEST.MF中沒有指定主類斤富,運行時報如下錯誤:
lszt.jar中沒有主清單屬性
2. 網上查閱各種資料膏潮,最終可解決方式是在jar中的MANIFEST.MF文件中指定主類
后面添加一行:
Main-Class:com.cbhb.testtool.lszt.Application
保存成功之后再次在窗口運行,運行成功
3. 血的教訓满力。焕参。。油额。叠纷。。潦嘶。涩嚣。。掂僵。航厚。。锰蓬。幔睬。。芹扭。麻顶。。冯勉。澈蚌。。灼狰。宛瞄。
在pom中配置時將xml標簽的行縮進弄錯,導致配置一直不生效,這個問題查了一下午份汗,最終一行一行的檢查盈电,發(fā)現是行縮進錯誤導致標簽無法識別。杯活。匆帚。。旁钧。吸重。