以java命令为例解析linux命令行调用语句

您所在的位置:网站首页 java调用命令行执行语句 以java命令为例解析linux命令行调用语句

以java命令为例解析linux命令行调用语句

#以java命令为例解析linux命令行调用语句| 来源: 网络整理| 查看: 265

后台运行命令

先给出来几个执行java命令行语句的例子:

1.java -jar gs-spring-boot-docker-0.1.0.jar 2.java -jar gs-spring-boot-docker-0.1.0.jar & 3.nohup java -jar gs-spring-boot-docker-0.1.0.jar 4.nohup java -jar gs-spring-boot-docker-0.1.0.jar & 5.nohup java -jar gs-spring-boot-docker-0.1.0.jar > log.log &

第一个命令是简单的java命令执行一个jar文件,由于这个jar文件的MANIFEST.MF文件中已经指定了Main-Class: org.springframework.boot.loader.JarLauncher,所以我们不用在命令行给出main方法所在的类了。

如果jar里面的MANIFEST.MF文件中没有指定Main-Class,那么运行语句需要改成java -cp gs-spring-boot-docker-0.1.0.jar org.springframework.boot.loader.JarLauncher

第二个命令在末尾增加了一个&符号。末尾&符号的作用是:在后台运行。当我们运行之后,确实命令行立刻恢复到了输入状态,但是每当后台运行的程序有标准输出时,仍然会输出在当前的窗口上。

如果不想输出到当前窗口,可以使用重定向符号来指定输出位置,像这样java -jar gs-spring-boot-docker-0.1.0.jar > log.log &。

这里简单说一下三个定向符号:> 标准输出定向到文件,文件原有内容会被覆盖;>> 以追加方式把标准输出定向到文件,文件原有内容会保留,新输出会追加到文件末尾; /dev/null &

2>$1

还是看一个例子:

nohup java -jar gs-spring-boot-docker-0.1.0.jar > log.log 2>&1 &

这里的nohup、末尾的&、以及>log.log的意义已经解释过了,这里在看一下2>&1。

这里的1和2分别代表标准输出和标准错误,还有一个值0,代表标准输入:

文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。

2 > &1意思就是把标准错误的信息,重定向到标准输出中。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3