如何制作可执行jar
1、如何制作可执行jar
1.1、引入依赖
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.3.1</version>
</dependency>
1.2、构建参数选项
1.3、解析参数
1.4、调用业务逻辑
如下:
package com.guo.test;
import cn.hutool.core.lang.Assert;
import cn.hutool.json.JSONUtil;
import org.apache.commons.cli.*;
public class TaskMain {
public static void main(String[] args) {
CommandLine commandLine = parseArguments(args);
String src = commandLine.getOptionValue(CMD_SRC_FULL);
String error = commandLine.getOptionValue(CMD_ERROR_FULL);
Assert.notBlank(src, "-s 参数为空");
Assert.notBlank(error, "-e 参数为空");
System.out.println(JSONUtil.toJsonStr(new String[]{src, error}));
try {
TaskTest.cmd(src, error);
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
private static CommandLine parseArguments(String[] arguments) {
Options options = buildOptions();
CommandLine commandLine = null;
try {
commandLine = new DefaultParser().parse(options, arguments);
} catch (ParseException e) {
e.printStackTrace();
System.exit(1);
}
if (commandLine.hasOption(CMD_HELP_FULL)) {
printHelp();
System.exit(0);
}
return commandLine;
}
private static void printHelp() {
Options options = buildOptions();
HelpFormatter helpFormatter = new HelpFormatter();
helpFormatter.printHelp("java -jar ${jar} [options]", options);
}
private static final String CMD_HELP_FULL = "help";
private static final String CMD_HELP = "h";
private static final String CMD_SRC_FULL = "src";
private static final String CMD_SRC = "s";
private static final String CMD_ERROR_FULL = "error";
private static final String CMD_ERROR = "e";
private static Options buildOptions() {
Options options = new Options();
options.addOption(Option.builder(CMD_SRC).argName("源数据").hasArg().longOpt(CMD_SRC_FULL).required(false).desc("src file patch, example:D:/src.txt").build());
options.addOption(Option.builder(CMD_ERROR).argName("错误数据").hasArg().longOpt(CMD_ERROR_FULL).required(false).desc("error file patch, example:D:/error.txt").build());
options.addOption(Option.builder(CMD_HELP).longOpt(CMD_HELP_FULL).desc("show command help").build());
return options;
}
}
1.5、生成MANIFEST.MF
1.5.1、打开IDEA设置页
File -> Project Structure -> Project Settings -> Artifacts
1.5.2、新增可执行jar
Add -> Jar -> from modules with dependencies
1.6、构建
1.7、执行测试
1.7.1、查看帮助
java -jar tms-tool.jar -h
1.7.2、执行命令
java -jar tms-tool.jar -s D:/test.txt -e D:/error.txt
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix