java 打jar包,实现小工具应用

背景

工作需要,做一个小的工具类,实现从日志中提取一些信息,时间短,没时间研究脚本语言了,就之际而用java写了个小方法,然后准备打jar包,使用命令完成提取日志信息;

主要流程

1.java代码比较简单,就创建了一个maven空项目,写了工具类方法,包含main方法,通过System.getPropery获取命令行中对应参数。
在这里插入图片描述
在这里插入图片描述
2.注意jdk版本和pom中打包插件的使用
因为是非springboot项目,直接用 org.apache.maven.plugins打包插件,如果引用到了第三方包,比如我用到了hutool,那还需要将第三方包打入到jar中,这就使用到了maven-shade-plugin,我的jdk是1.8,用到的插件版本如下:
对应需要配置jar的主方法入口,这个也需要在META-INF里的MANIFEST.MF文件中定义,具体操作见常用问题;
注意项目的默认jdk版本要和maven jdk版本一直,否则会报java 运行版本不同的错误

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>com.example.TextSubStringTrans</mainClass> <!-- 此处为主入口-->
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.4</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>com.example.TextSubStringTrans</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

3.打jar包,先clean,再install 成功后会在项目 target路径下生成jar包,jar包默认命名为pom中定义的artifactId+version。

4、脚本命令为:
java -Dpath=D:\projects\xx.serverlog -Dtype=1 -jar GidTool-1.0.jar
其中-D+参数名,代表入参名,在具体代码中使用System.getPropery获取参数值,见第一步。

5.在对应jar路径下,使用powershell,书写命令,执行,即可完成工具的使用,很简单。

常遇到的问题

1.比如运行jar的时候,没有注清单属性这种,可以通过idea配置
步骤一:点击左上角 File --> Project Structure
步骤二:弹出新窗口后点击Artifacts-"+"号-JAR-From module with dependenceis…
步骤三:弹出新窗口后点击Main Class右边文件夹图标,选择主方法类,也就是我这个项目中的TextSubStringTrans类
步骤四:选完后点击Directory for META-INF/MANIFEST.MF右边的文件夹图标- 选择自己项目的根路径-OK
步骤五:回到上一层级,查看是否配置对,然后点OK

这样就在项目跟路径下生成对应的MF文件了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值