使用Mavne生成可以执行的jar文件详解程序员
2023-06-13 09:20:19 时间
到目前为之,还没有运行HelloWorld的项目,不要忘了HelloWorld类可是有一个main方法的。使用mvn clean install命令默认生成的jar 包是不能直接运行的。因为带有main方法的类信息不会添加到manifest中(打开jar文件中的META-INFO/MANIFEST.MF文件,将无法看到Main-Class一行)。为了生成可以执行的jar文件,需要借助maven-shade-plugin,配置该插件如下:
build plugins plugin groupId org.apache.maven.plugins /groupId artifactId maven-shade-plugin /artifactId version 1.2.1 /version executions execution phase package /phase goals goal shade /goal /goals configuration transformers transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer" mainClass HelloWorld /mainClass /transformer /transformers /configuration /execution /executions /plugin /plugins /build
plugin元素在POM中的相对位置在 project build plugins 下面。我们配置了mainClass为:HelloWorld,项目打包时会将该信息放到MANIFEST中。现在执行mvn clean install,待构建完成后打开target/目录,可以看到hellow-world-1.0-SNAPSHOT.jar,这个jar文件带有Main-Class信息的可运行jar,打开hellow-world-1.0-SNAPSHOT.jar的META-INFO/MANIFEST.MF,可以看到它包含这一行信息:
Main-Class: HelloWorld
现在在项目根目录中执行该jar文件:
java -jar hello-world-1.0-SNAPSHOT.jar
输出:
Hello World!!
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/6498.html
服务器部署程序员系统优化网站设置运维相关文章
- 【Maven】maven打包生成可执行jar文件
- Springboot文件上传_maven上传jar包到远程仓库
- 下载MySQL驱动Jar包:下载指南(mysql驱动jar包在哪)
- 依赖掌握 Linux 系统查看Jar包依赖的方法(linux查看jar包)
- Linux 下简单执行 Jar 包的方法(linux执行jar)
- MySQL 5.7: A Jar of Database Solutions(mysql5.7jar)
- MySQL驱动Jar包:掌握使用技巧(mysql的驱动jar包)
- 文件使用Linux系统编译JAR文件(linux编译jar)
- 文件轻松解压:Linux下解压Jar文件(linux解压缩jar)
- 包Linux下添加Jar包的技巧(linux添加jar)
- 轻松启动:Linux 中的 Jar 文件(linux启动jar)
- Linux环境下如何导入Jar文件(linux导入jar文件)
- 包Java环境下Oracle调用Jar包实现数据查询(oracle调用jar)
- 包打造基于Linux平台的Jar包(linux打jar)
- 包深度探索Oracle数据库JAR包(oracle数据库jar)
- 文件使用Oracle 11 JAR文件之旅(oracle11jar)
- 在Linux上运行Java Jar文件(jarlinux运行)
- 学会Linux改变Jar文件,开启新的体验(linux修改jar文件)
- 解压 Linux 下的JAR文件(linux解压jar)
- Linux解压JAR文件:一步一步操作指南(jar解压linux)
- 如何在Linux系统下运行Jar文件(linux执行jar文件)
- Redis 极速部署:从 Jar 包到服务(redisjar包)
- Oracle JAR位置探索从原理到实践(oracle jar位置)
- Oracle7 Jar包引领Java语言新技术突破(oracle7 jar包)
- Android在高jar包版本的工程中修改方法
- 基于Java的打包jar、war、ear包的作用与区别详解