如何编写一个Java小程序通过java -jar的方式去测试一个功能

整个项目打包到现场部署需要大量成本的时候,编写一个单功能的测试小程序部署就会便捷很多。直接上教程

1、通过idea创建一个普通的maven项目

image.png

image.png

2、找到自己需要用的第三方jar包,此处使用commons-collections-3.2.1.jar

3、在项目文件夹中创建lib文件夹,如图

image.png

4、将第三方jar包复制到lib文件夹中,然后右键选择添加到资源库中

image.png

image.png

5、修改pom文件内容,如下

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>SMS</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- 添加自己引用的第三方包 -->
        <dependency>
            <!-- 这个随便写 -->
            <groupId>org.example</groupId>
            <!-- 这个随便写 -->
            <artifactId>SMS</artifactId>
            <!-- 这个随便写 -->
            <version>1.0-SNAPSHOT</version>
            <!-- 这个很重要 -->
            <scope>system</scope>
            <!-- 这个路径不能错,错了idea会提示,正确idea会自动带出 -->
            <systemPath>${basedir}/lib/commons-collections-3.2.1.jar</systemPath>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <archive>
                        <manifest>
                            <!--<addClasspath>true</addClasspath> -->
                            <classpathPrefix></classpathPrefix>
                            <!-- 这个是主启动类,里面必须有main方法 -->
                            <mainClass>Test3</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

6、编写java代码

import org.apache.commons.collections.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

public class Test3 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        // 调用第三方包里面的函数
        System.out.println("数组大小:" + CollectionUtils.size(list));
    }
}

7、使用idea右侧的maven打包

image.png

8、在target目录下创建run.bat文件

image.png

9、编写如下命令,然后运行测试

@echo off
set jdk_path=D:\Java\jdk1.7.0.79
set java_cmd=%jdk_path%\bin\java
%java_cmd% -Xbootclasspath/a:..\lib\commons-collections-3.2.1.jar -jar .\SMS-1.0-SNAPSHOT.jar
pause

注意:如果需要引入的第三方包是多个,在Windows中用分号;隔开,在Linux中用冒号:隔开

10、结果如下

image.png

11、有时候为了不重新打包直接修改一些参数值,需要引入外部配置文件,这时需要编写如下代码获取配置文件中的值

import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;

public class Test {
    private static String comPorts;
    private static int baudRate;
    private static String simPin;
    private static String manufacture;
    private static String model;
    private static String sendContent;
    private static String receivers;

    public static void main(String[] args) throws IOException {
        initParameters(args);
        System.out.println(comPorts);
        System.out.println(baudRate);
        System.out.println(simPin);
        System.out.println(manufacture);
        System.out.println(model);
        System.out.println(sendContent);
        System.out.println(receivers);
    }

    private static void initParameters(String[] args) throws IOException {
        Properties properties = new Properties();
        if (args.length != 0) {
            FileReader fileReader = new FileReader(args[0]);
            properties.load(fileReader);
            comPorts = properties.getProperty("comPorts");
            baudRate = Integer.parseInt(properties.getProperty("baudRate"));
            simPin = properties.getProperty("simPin");
            manufacture = properties.getProperty("manufacture");
            model = properties.getProperty("model");
            sendContent = properties.getProperty("sendContent");
            receivers = properties.getProperty("receivers");
        }
    }
}

12、创建配置文件,如下

image.png

13、配置文件内容为

#----------------------短信网关配置-------------------------
#短信设备COM端口号
comPorts=COM1
#短信设备波特率:115200,19200,9600
baudRate=115200
#短信SIM卡PIN码
simPin=0000
#短信设备厂商
manufacture=sms
#短信设备型号
model=123
#发送内容
sendContent=1212
#接收人
receivers=00000000000

14、这时启动时需要指定配置文件

@echo off
set current_path=%~dp0
set jdk_path=D:\Java\jdk1.7.0.79
set java_cmd=%jdk_path%\bin\java
%java_cmd% -Xbootclasspath/a:..\lib\commons-collections-3.2.1.jar -jar .\single_function_project-1.0-SNAPSHOT.jar %current_path%\gateway-config.properties
pause
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容