继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

编写可执行jar——main函数String[] args的认识(一)

zee_moo
关注TA
已关注
手记 9
粉丝 106
获赞 301

可执行jar,顾名思义,就是可以直接运行的java程序。比如你编写了一个过滤文章关键字的工具类,但是你希望平时也能用,而不是集成到其他环境中或者用IDE去运行……跟着笔者一步一步做下来,相信一定会有所收获

1. 编程环境

JDK版本:1.8maven版本:3.5.0IDE工具:IDEA系统:windows 7

2. 需求明确

2.1 启动

启动安卓模拟器

2.2 安装APP

在启动模拟器的情况下安装apk

2.3 运行APP

在启动模拟器的情况下,运行APP

2.4 退出APP后台进程

在启动模拟器的情况下,退出APP进程

2.5 卸载APP

在启动模拟器的情况下,卸载已安装的APP

3. 工程结构

图片描述
包结构注释:

  • pom.xml

  • App.class:程序入口

  • service:业务逻辑处理

  • utils:工具包

  • exception:自定义异常

  • consts:常量类,如指令词典。

4. 简单的可执行jar——程序入口

4.1 可执行jar的初始化构建

为了让我们对可执行jar有个概念,我们先用maven构建一个简单的工程。maven创建项目的配置如下图所示
图片描述

创建完成后的项目结构如下图所示
图片描述

点击执行main函数(绿色的小三角),控制台输出“Hello World!”,则项目【初始化创建成功】

4.2 args字符串数组

可以看到程序入口main函数中,需要传入参数args。那么args里面到底有什么内容呢?我们对main函数进行修改(也可以使用debug模式),修改后main函数如下

【修改main函数方式查看】

   public static void main(String[] args) {        System.out.println("args数组的长度:"+args.length);        System.out.println("args数组的内容:");        for (String arg:             args) {            System.out.println(arg);        }    }

再次执行,输出结果为

    args数组的长度:0    args数组的内容:

从上面的结果我们可以知道,args为空数组,那为什么这里会有这个形参呢?是否可以删去这个形参呢?我们试试改成不传args的main函数来执行

    public static void main() {        System.out.println("Hello World!");    }

输出结果是直接抛异常了。
图片描述

那么args究竟有什么作用呢?我们把main函数修改会【修改main函数方式查看】的状态。然后修改一下运行配置
图片描述

图片描述

再运行一次,我们可以发现args有内容了。

图片描述

然而,这个说明什么呢?我们再用maven打包。按Alt+F12打开Terminal,运行指令

mvn package

图片描述

出现“BUILD SUCCESS”,说明打包已经完成。打开target文件夹可以发现多了一个jar文件
图片描述
我们在target文件夹下运行cmd

java -jar actuator-1.0.0.jar -a aa aaa bbbb

运行结果为
图片描述

出现这个错误是因为我们pom文件中maven-jar-plugin少了一段配置,我们添加进去之后变成

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>3.0.2</version>
  <configuration>        
    <archive>
      <manifest>
        <addClasspath>true</addClasspath>            
        <classpathPrefix>lib/</classpathPrefix>
        <mainClass>com.zeemoo.nos.actuator.App</mainClass>
      </manifest>
    </archive>
  </configuration>
</plugin>

再用打包,运行一次,可以看到下面的结果
图片描述
说明args可以是外部传入的值。

以下内容在后续手记继续

5. Process调用脚本语言

6. 指令词典类

7. 操作类

8. 完善可执行jar

9. 打包成maven依赖

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP