欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

將Java項(xiàng)目打包成可執(zhí)行的jar包

 更新時(shí)間:2020年06月17日 10:02:27   作者:嚶 嚶 嚶  
這篇文章主要介紹了將Java項(xiàng)目打包成可執(zhí)行的jar包,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、通過 eclipse 自帶打包

測(cè)試項(xiàng)目: 

 

Main.java

package com.bug;
import org.junit.Test;
public class Main {	
	public static void main(String[] args) {
		test();
	}
	@Test
	public static void test() {
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
	}
}

1.右鍵項(xiàng)目文件夾,點(diǎn)擊export,選擇JAR flie點(diǎn)擊next。

2.勾選要打包的文件夾,這里只要勾選需要編譯的java文件就可以了,下面的JAR file為打包后的保存路徑和jar名稱,選擇好后點(diǎn)擊next。

Export generated class files and resources 表示只導(dǎo)出生成的.class文件和其他資源文件
Export all output folders for checked projects 表示導(dǎo)出選中項(xiàng)目的所有文件夾
Export java source file and resouces 表示導(dǎo)出的jar包中將包含你的源代碼*.java,不想泄漏源代碼,那么就不要選這項(xiàng)了
Export refactorings for checked projects 把一些重構(gòu)的信息文件也包含進(jìn)去

3.如下圖,點(diǎn)擊next。

  4.如下圖,Main class為項(xiàng)目入口路徑,點(diǎn)擊后面的按鈕可以選擇項(xiàng)目入口路徑,選擇好后點(diǎn)擊finish即可完成打包。

Generate the manifest file:是系統(tǒng)幫我們自動(dòng)生成MANIFEST.MF文件,如果你的項(xiàng)目沒有引用其他class-path,那可以選擇這一項(xiàng)。
Use existing mainfest from workspace:這是可以選擇我們自定義的.MF文件,格式如上所寫,引用了第三方包時(shí)選用。
Seal content:要封裝整個(gè)jar或者指定的包packet。
Main class:這里可以選擇你的程序入口,將來打包出來的jar就是你這個(gè)入口類的執(zhí)行結(jié)果。

在打包好后有幾個(gè)問題需要注意:

1.MANIFEST.MF文件需要根據(jù)自己的項(xiàng)目需要進(jìn)行編寫替換,MANIFEST.MF文件的修改需要嚴(yán)格遵守書寫規(guī)范,

首行為 Manifest-Version: 1.0   

第二行為Class-Path: xxx.jar(依賴的jar,沒有就不寫)  

第三行為Main-Class: 項(xiàng)目入口路徑

每個(gè)冒號(hào)后面需要有一個(gè)空格
每行結(jié)束不能有空格
Main-Class: 項(xiàng)目入口路徑 后面需要打兩個(gè)換行
如果依賴多個(gè)jar,則書寫完每個(gè)jar后空一格寫下一個(gè)
每行不能超過72個(gè)字符,如果每行寫一個(gè)jar,則每行開始空兩格。

 lib/junit.jar  org.hamcrest.core_1.3.0.v20180420-1519.jar,為我的 juit 需要的 jar 包,創(chuàng)建一個(gè) lib 目錄存儲(chǔ)著兩個(gè) jar 包。

 

2. 使用eclipse將項(xiàng)目打包后,項(xiàng)目中實(shí)際調(diào)取的依賴和文件等路徑一般需要和項(xiàng)目的jar存放到同一級(jí)目錄,否則會(huì)出現(xiàn)ClassNotFound等異常,放在同一級(jí)目錄也方便后面根據(jù)需求修改配置文件。

3.編譯好的jar可以用java -jar xxx.jar運(yùn)行,這種運(yùn)行方式會(huì)在命令行或linux服務(wù)器上顯示啟動(dòng)和項(xiàng)目中的打印信息,當(dāng)使用Ctrl+C退出時(shí),jar的運(yùn)行也會(huì)終止。

二、使用 maven 打包

Maim

package com.bug.test;
import org.junit.Test;
public class Main {
	public static void main(String[] args) {
		test();
	}
	@Test
	public static void test() {
		for(int i = 0; i < 10; i++) {
			System.out.println(i);
		}
	}
}

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.bug</groupId>
	<artifactId>Test</artifactId>
	<version>0.0.1-SNAPSHOT</version>
 
	<!-- 依賴 -->
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>RELEASE</version>
		</dependency>
	</dependencies>
 
 
 
	<build>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.3.2</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-assembly-plugin </artifactId>
				<configuration>
					<descriptorRefs>
						<descriptorRef>jar-with-dependencies</descriptorRef>
					</descriptorRefs>
					<archive>
						<manifest>
							<!-- 工程主類的全限定名 -->
							<mainClass>com.bug.test.Main</mainClass>
						</manifest>
					</archive>
				</configuration>
				<executions>
					<execution>
						<id>make-assembly</id>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
 
 
</project>

這樣也可以:

<build>
	<pluginManagement>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<archive>
						<manifest>
							<mainClass>com.bug.test.Main</mainClass>
							<addClasspath>true</addClasspath>
							<classpathPrefix>lib/</classpathPrefix>
						</manifest>
					</archive>
					<classesDirectory>
					</classesDirectory>
				</configuration>
			</plugin>
		</plugins>
	</pluginManagement>
</build>

注意:如果工程上顯示紅叉。在項(xiàng)目上右鍵->maven->update project即可。

將程序打成jar包:

步驟詳情:右鍵->Run as->maven install。等待編譯完成就會(huì)在項(xiàng)目的target文件夾中生成jar包。如果看不到。在項(xiàng)目上右鍵->Refresh,即可看到。

參考:http://www.dbjr.com.cn/article/142553.htm

idea打包java程序(包含依賴的所有jar包):http://www.dbjr.com.cn/article/188851.htm

到此這篇關(guān)于將Java項(xiàng)目打包成可執(zhí)行的jar包的文章就介紹到這了,更多相關(guān)Java打包成可執(zhí)行ar內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot請(qǐng)求參數(shù)加密、響應(yīng)參數(shù)解密的實(shí)現(xiàn)

    SpringBoot請(qǐng)求參數(shù)加密、響應(yīng)參數(shù)解密的實(shí)現(xiàn)

    在項(xiàng)目開發(fā)工程中,有的項(xiàng)目可能對(duì)參數(shù)安全要求比較高,在整個(gè)http數(shù)據(jù)傳輸?shù)倪^程中都需要對(duì)請(qǐng)求參數(shù)、響應(yīng)參數(shù)進(jìn)行加密,本文主要介紹了SpringBoot請(qǐng)求參數(shù)加密、響應(yīng)參數(shù)解密的實(shí)現(xiàn),感興趣的可以了解一下
    2024-01-01
  • 教你怎么使用Optional處理null

    教你怎么使用Optional處理null

    今天教各位小伙伴怎么使用Optional處理null,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很大的幫助,需要的朋友可以參考下
    2021-05-05
  • 深入理解Java設(shè)計(jì)模式之單例模式

    深入理解Java設(shè)計(jì)模式之單例模式

    這篇文章主要介紹了JAVA設(shè)計(jì)模式之單例模式的的相關(guān)資料,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2021-11-11
  • Java Mybatis一級(jí)緩存和二級(jí)緩存

    Java Mybatis一級(jí)緩存和二級(jí)緩存

    緩存是內(nèi)存當(dāng)中一塊存儲(chǔ)數(shù)據(jù)的區(qū)域,目的是提高查詢效率,降低服務(wù)器和數(shù)據(jù)庫(kù)的壓力,這篇文章主要介紹了Mybatis一級(jí)緩存和二級(jí)緩存,感興趣的同學(xué)可以參考閱讀本文
    2023-04-04
  • Spring高級(jí)注解之@DependsOn詳解

    Spring高級(jí)注解之@DependsOn詳解

    這篇文章主要介紹了Spring高級(jí)注解之@DependsOn詳解,@DependsOn注解可以定義在類和方法上,意思是我這個(gè)組件要依賴于另一個(gè)組件,也就是說被依賴的組件會(huì)比該組件先注冊(cè)到IOC容器中,需要的朋友可以參考下
    2024-01-01
  • 在IDEA中安裝scala、maven、hadoop遇到的問題小結(jié)

    在IDEA中安裝scala、maven、hadoop遇到的問題小結(jié)

    這篇文章主要介紹了在IDEA中安裝scala、maven、hadoop遇到的問題小結(jié),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 詳解JAVA調(diào)用WCF服務(wù)的示例代碼

    詳解JAVA調(diào)用WCF服務(wù)的示例代碼

    這篇文章主要介紹了詳解JAVA調(diào)用WCF服務(wù)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • java模擬實(shí)現(xiàn)銀行ATM機(jī)操作

    java模擬實(shí)現(xiàn)銀行ATM機(jī)操作

    這篇文章主要為大家詳細(xì)介紹了java模擬實(shí)現(xiàn)銀行ATM機(jī)操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 一篇文章讓你弄懂Java運(yùn)算符

    一篇文章讓你弄懂Java運(yùn)算符

    java中位運(yùn)算符主要有按位與&、按位或|、按位非~、按位異或^, 在使用時(shí)需要將運(yùn)算數(shù)都轉(zhuǎn)換為二進(jìn)制再進(jìn)行運(yùn)算,若為負(fù)數(shù)則使用補(bǔ)碼表示,這篇文章主要給大家介紹了關(guān)于Java運(yùn)算符的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • java編程題之從上往下打印出二叉樹

    java編程題之從上往下打印出二叉樹

    這篇文章主要為大家詳細(xì)介紹了java編程題之從上往下打印出二叉樹,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03

最新評(píng)論