MacOS 上使用 IntelliJ IDEA 指定 Main 函数并打包为 JAR 文件

MacOS 上使用 IntelliJ IDEA 指定 Main 函数并打包为 JAR 文件


文章目录


前言

在 Java 开发中,打包应用程序为 JAR 文件(Java ARchive)是常见的操作,它能够将应用程序的所有类、资源和库文件打包成一个可执行的文件,便于分发和部署。对于开发者来说,能够在打包时指定Main 函数,使得程序能够在运行时自动找到入口点,十分重要。


一、明确要打包的Main函数(入口代码)类

我要打包的程序文件是:org.example.terra.ubuntuterra.TerraMainController、这个类是程序Main入口;

二、配置pom.xml

xml 复制代码
<build>
    <plugins>
        <!-- 编译插件,确保使用正确的 JDK 编译项目 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId> <!-- 这里定义了使用的插件的组织 ID -->
            <artifactId>maven-compiler-plugin</artifactId> <!-- 插件的名称 -->
            <version>3.8.1</version> <!-- 插件的版本号 -->
            <configuration> <!-- 插件的配置 -->
                <source>1.8</source> <!-- 指定使用的 JDK 版本来编译源代码,1.8代表 JDK 1.8 -->
                <target>1.8</target> <!-- 指定生成的字节码的目标 JDK 版本,1.8 代表 JDK 1.8 -->
                <encoding>UTF-8</encoding> <!-- 指定源代码文件的字符编码,通常使用 UTF-8 -->
            </configuration>
        </plugin>

        <!-- 打包插件,生成包含 Main 函数的 JAR 文件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId> <!-- 插件组织 ID -->
            <artifactId>maven-shade-plugin</artifactId> <!-- 插件名称,maven-shade-plugin 用于创建可执行的 JAR 包 -->
            <version>3.5.0</version> <!-- 插件版本号 -->
            <executions> <!-- 定义插件的执行周期 -->
                <execution>
                    <phase>package</phase> <!-- 插件将在 Maven 的 package 阶段执行,即在打包过程中触发 -->
                    <goals>
                        <goal>shade</goal> <!-- 目标:shade 代表创建一个合并了所有依赖的 JAR 文件 -->
                    </goals>
                    <configuration> <!-- 插件的具体配置 -->
                        <transformers> <!-- 转换器,用于修改 JAR 文件的清单(Manifest) -->
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <!-- 这里指定了生成 JAR 文件时,应用程序的入口点,即 Main 函数所在的类 -->
                                <mainClass>org.example.terra.ubuntuterra.TerraMainController</mainClass> 
                                <!-- 你需要将这个路径替换成你自己的 Main 类路径 -->
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

三、通过Maven打Jar包

按照上面pom.xml配置好、即可打包

四、其他打Jar包方式

IDEA打jar包(超超超详细):https://blog.csdn.net/weixin_43671437/article/details/102736236

相关推荐
深念Y6 小时前
PVE 安装黑苹果并直通 Quadro P400
macos·ios·黑苹果·驱动·苹果·英伟达·p400
ACP广源盛139246256738 小时前
M6/M5 Pro Mac mini 端侧 AI 落地@ACP#IX6024 PCIe2.0 交换芯片在轻量化 AI 服务中的机会与应用场景
大数据·数据库·人工智能·嵌入式硬件·macos·开源
sysinside9 小时前
VMware Fusion 26H1u1 for Mac - 领先的免费桌面虚拟化软件
macos·fusion
夕小瑶10 小时前
豆包工作」升级实测:多Agents并行,操作Mac电脑
macos
黄一一9112431 天前
跨平台视频图片压缩互转!离线视频压缩工具!Github开源轻松无损压缩视频!Win/Mac/Linux三端通用开源工具
windows·macos·音视频·开源软件
秋雨梧桐叶落莳1 天前
【iOS】从源码深入理解RunLoop机制
macos·ios·objective-c·cocoa·cocoapods·uikit
别走!万哥爱你1 天前
Mac访达中不显示iPad或iPhone怎么办?
macos·iphone·ipad
ACP广源盛139246256731 天前
M6/M5 Pro Mac mini 端侧 AI 爆发@ACP#YLB3118 存储扩展芯片在本地 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
guo_wen_qiang2 天前
mac中docker desktop服务端开启远程访问
运维·服务器·macos·docker
o盟2 天前
maven本地仓库有 总是去私仓中下载
java·maven·intellij-idea