POM 打包 Jar,指定Main方法的类,指定使用的JDK

59 篇文章 0 订阅
14 篇文章 0 订阅

目录

■前言

■POM文件定义

■在Eclipse中,运行MVN,生成Jar

更具体的操作

■命令行执行

1.执行指定了Main方法的Jar

2.执行没有指定Main方法的jar

■Log4J配置文件

■更多Java学习总结

■Log4J配置相关

■扩展

■扩展1:Java命令行执行

■扩展2:Maven 命令行执行

■扩展3:SpringBoot工程,生成Jar (POM文件定义)

■扩展4:更多POM的应用,比如lombook的使用 (POM文件定义)


■前言

   写了一个工具,仅仅一个java文件不能实现,需要多个java文件,

   打成jar,执行时方便。

   (记录一下 ,方便以后直接使用。)

■POM文件定义

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sxz</groupId>
  <artifactId>MyJavaTool</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>MyJavaTool</name>



	<dependencies>

		<!-- SLF4J -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.25</version>
		</dependency>
		 
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.25</version>
		</dependency>


		<!-- Log4j -->
		<dependency>
			<groupId>log4j</groupId>
			<version>1.2.17</version>
			<artifactId>log4j</artifactId>
		</dependency> 
	
		<!-- lombok -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<version>1.18.20</version>
			<artifactId>lombok</artifactId>
		</dependency>

	</dependencies>
	
 
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
 
  
	<build>
	        <plugins>
	 
	            <plugin>
	                <artifactId>maven-compiler-plugin</artifactId>
	                <configuration>
	                    <source>1.8</source>
	                    <target>1.8</target>
	                </configuration>
	            </plugin>
	 
	            <plugin>
	                <artifactId>maven-assembly-plugin</artifactId>
	 
	                <configuration>
	                    <appendAssemblyId>false</appendAssemblyId>
	                    <descriptorRefs>
	                        <descriptorRef>jar-with-dependencies</descriptorRef>
	                    </descriptorRefs>
	                    <archive>
	                        <manifest>
	                            <mainClass>com.sxz.tool.moveResource.StartProcessRun</mainClass>
	                        </manifest>
	                    </archive>
	                </configuration>
	 
	                <executions>
	                    <execution>
	                        <id>make-assembly</id>
	                        <phase>package</phase>
	                        <goals>
	                            <goal>assembly</goal>
	                        </goals>
	                    </execution>
	                </executions>
	 
	            </plugin>
	        </plugins>
	</build>
  
</project>

注意:68行 :manifest 英 [ˈmænɪˌfɛst]  //n. 货单;旅客名单  // Maven

                       不是 mainfest

---

■在Eclipse中,运行MVN,生成Jar

下面的Goals填写【clean package】 ※两个操作之间是空格,不是逗号

 ====

更具体的操作

https://blog.csdn.net/sxzlc/article/details/124621551

■命令行执行

1.执行指定了Main方法的Jar

java -DatuhPasswd=mypwd01 -jar myTestJava.jar param0 param1

2.执行没有指定Main方法的jar

(通过指定ClassPath的方式)

java -classpath .;myTool.jar com.sxz.HelloWorld

java -cp .;C:\NewIT\SikuliForRedmine\bin\sikulixapi.jar com.sxz.Test

■Log4J配置文件

log4j.properties

### SETTIN
log4j.rootLogger = debug,stdout,D,E
 
### CONSOLE
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
 
### DEBUG ABOVE 
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = G://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### ERROR
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =G://logs/error.log 
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

■更多Java学习总结

VBA中 各种数据类型的使用(自定义数据类型Type,数组,数据字典)、读写文件_sun0322的博客-CSDN博客_vba中type类型

■Log4J配置相关

https://blog.csdn.net/sxzlc/article/details/124621551

■扩展

■扩展1:Java命令行执行

使用java的java 命令,直接调用执行class文件_sun0322的博客-CSDN博客_java 执行class文件

■扩展2:Maven 命令行执行

在 命令行 (cmd)执行 Maven命令,对java工程进行打包 操作 (指定settings.xml)_sun0322的博客-CSDN博客_mvn 命令 指定settings

■扩展3:SpringBoot工程,生成Jar (POM文件定义)

SpringBoot + Thymeleaf 之 HelloWorld_sun0322的博客-CSDN博客

■扩展4:更多POM的应用,比如lombook的使用 (POM文件定义)

SpringBoot + MyBatis 之 Hello World_sun0322的博客-CSDN博客

----

----

JDK 17中,可以使用JavaFX来打包可执行文件(exe)。下面是打包exe的步骤: 1. 配置JDK 17:确保你的系统中已经正确安装了JDK 17,并且配置了系统变量。 2. 配置JavaFX:在JDK 17中,JavaFX已经被移除,需要单独下载并配置。你可以从OpenJFX官方网站下载JavaFX,并将其解压到一个目录中。 3. 配置项目:在你的项目中,确保已经正确配置了JavaFX的依赖项。这可以通过在项目的构建文件(如pom.xml或build.gradle)中添加相应的依赖项来实现。 4. 打包jar文件使用构建工具(如Maven或Gradle)将你的项目打包成一个可执行的jar文件。你可以使用以下命令来执行打包操作: - Maven:`mvn clean package` - Gradle:`gradle clean build` 5. 打包exe文件使用第三方工具(如Launch4j或JPackage)将jar文件打包成exe文件。这些工具可以将jar文件与Java运行时环境(JRE)捆绑在一起,以便在没有安装JRE的计算机上运行。以下是使用Launch4j和JPackage的示例: - 使用Launch4j: - 下载并安装Launch4j。 - 打开Launch4j,并配置以下参数: - Output file:指定生成的exe文件的输出路径和名称。 - Jar:选择你之前打包jar文件。 - JRE:选择你想要捆绑的JRE版本。 - 保存配置并点击“Build”。 - 使用JPackage: - 打开命令行终端,并导航到你的项目目录。 - 运行以下命令: ```shell jpackage --input <path_to_jar_file> --main-jar <main_class> --output <output_directory> --name <app_name> --win-shortcut --win-menu --win-dir-chooser ``` 其中: - `<path_to_jar_file>`:你之前打包jar文件的路径。 - `<main_class>`:你的应用程序的主。 - `<output_directory>`:生成的exe文件的输出目录。 - `<app_name>`:生成的exe文件的名称。 请注意,以上步骤中的参数和工具选择可能因你的具体需求而有所不同。你可以根据自己的情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值