前言: 暂无

零:java -h

和很多linux命令一样,我们第一步先通过“java -h”命令查看java命令的使用语法,其输出如下

[root@wxapp203 basesoft]# java -h
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-d32 use a -bit data model if available
-d64 use a -bit data model if available
-server to select the "server" VM
The default VM is server,
because you are running on a server-class machine. -cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
A : separated list of directories, JAR archives,
and ZIP archives to search for class files.
-D<name>=<value>
set a system property
-verbose:[class|gc|jni]
enable verbose output
-version print product version and exit

有图我们可知java有两种格式(对应两种功能)的使用方法,

功能一:执行一个class文件

功能二:执行一个jar文件

一:java [-options] -jar jarfile [args...]

可选参数[-options] : 没使用过,但其介绍可猜测

必选参数 -jar         :指定该命令是运行的是个jar或war文件

必选参数 **jarfile   :指定运行的文件

可选参数[args.....] :  用过一个就是‘&’指定该jar文件后台挂起,下面介绍。

备注:可执行spring boot的war包项目

二:不指定任何参数运行jar文件

  java  -jar  ***jarFile

  该使用方式,当退出控制台jar项目也会退出(大多数情况都不实用)

三:通过在***jarFile文件后指定参数“&”

 java  -jar  ***jarFile  &

该方式启动jar项目,当退出通知台该jar项目也会一直运行,可解决二的问题(之前我也是这样启动的),但后来发现,即使我退出了控制台,项目里面打印的日志文件会输出到当前控制台(即两个控制台不是一个)。后经分析可知,该命令没有指定该进程的输出流到哪里,默认输出流(和项目里的日志输出不一样,即使输出的东西是一样的)是当前控制台。所以要解决该问题就要解决指定该输出流到哪里?故可参考如下命令

四:指定该项目(进程)的输出流

 java  -jar  ***jarFile  > ./test.log  &

可选参数:> ./test.log (注意中间空格) 指定进程(项目)的输出了到当前目录下的test.log文件

备注>该参数只指定了标准输出流,并没有指定标准错误输出

可选参数:’&’ 后台挂起

五 :标准使用方式

为保险起见我们也可以把标准错误输出流写到文件中去(也就是说如果上面进程出现错误了,还是会把错误信息输出到当前控制台的),

java  -jar  ***jarFile  > ./test.log  2>&1 &

备注:2>&1  >2代表标准错误输出流  1代表标准输出流   &是合并的意思。0代表输入流

备注:因为我们已经在项目中有输出日志(也就是说上面的命令会输出两个一样的日志内容  一个是项目中打印的日志(由你的项目决定),一个就是该命令产生的日志test.log(有服务器系统决定)),为节省资源我们可以忽略服务器系统打印的日志。故我们可以使用如下命令

  java  -jar  ***jarFile  > /dev/null  2>&1 &  

备注:该命令把输出所有输出流输出到文件/dev/null下,该文件是系统设计的,即输入到该文件的东西立即被抛弃不会产生多余资源(即可变相实现不输出的效果)

六:附加   nohup (短语:后台运行)

查看该语法使用   nohup --help

[root@wxapp203 basesoft]# nohup  --help
Usage: nohup COMMAND [ARG]...
or: nohup OPTION
Run COMMAND, ignoring hangup signals. --help display this help and exit
--version output version information and exit If standard input is a terminal, redirect it from /dev/null. //标准输入流 重定向到 /dev/null
If standard output is a terminal, append output to `nohup.out' if possible, //即没有指定输出流是,默认追加到当前目录下的nohup.out(无需自己创建)文件中。
`$HOME/nohup.out' otherwise.
If standard error is a terminal, redirect it to standard output. //标准错误输出流,重定向到输出流中,即2>&1
To save output to FILE, use `nohup COMMAND > FILE'. //也可以指定输出流到文件 NOTE: your shell may have its own version of nohup, which usually supersedes
the version described here. Please refer to your shell's documentation
for details about the options it supports.

故:我们可以使用   nohup  java  -jar  ***jarFile  > /dev/null   &   来替代标准五的使用

例如

$ nohup java -jar fwh_biz-0.0.-SNAPSHOT.war > /dev/null &    //使用命令
[] 10112 //返回进程id
nohup: ignoring input and redirecting stderr to stdout //提示我们 忽略了输入流 并且把标准错误输出流,重定向到输出流中了,而我们把输出流重定向到/dev/null中,故什么都不会输出
[] Killed nohup java -jar fwh_biz-0.0.-SNAPSHOT.war
备注:这样看来nohup的功能就是包装(从效果上看它包装了流的走向和一个提示功能)了我们之前的命令.

参考资料:1.https://www.cnblogs.com/zq-inlook/p/3577003.html (博客)

2. http://www.runoob.com/linux/linux-shell-io-redirections.html(shell教程)

3.https://docs.oracle.com/javase/1.5.0/docs/tooldocs/solaris/java.html (官方文档)

Java部署项目命令学习小结的更多相关文章

  1. 开源项目AndroidReview学习小结(2)

    读书破万卷下笔如有神 作为入门级的android码农的我,还是需要多多研读开源代码 下面继续接着上一篇的分析,这一篇主要介绍第一个tab,ReviewFragment的分析,界面看起来简单,背后的逻辑 ...

  2. Java中的equals学习小结

    Java中的equals是十分重要的,和= =要区别开来,现在小结其主要内容,而且要将 = =和 equals列为重要的对比概念来学习 1.声明格式    public  boolean equals ...

  3. 开源项目AndroidReview学习小结(1)

    多看多学涨姿势 最近学习了一个开源项目,感觉收获颇多,这里做下简要的记录,首先感谢作者的开源.先看个大概图 感觉框架非常简单,界面也很一般,不过底层的处理的一些处理还是有很多可圈可点之处,代码的处理一 ...

  4. java中继承关系学习小结

    继承:把多个类中同样的内容提取出来.定义到一个类中,其它类仅仅须要继承该类.就能够使用该类公开的属性和公开的方法.   继承的优点:提高代码的复用性.提高代码的可维护性.让类与类之间产生关系,是多态存 ...

  5. Docker学习笔记五:Docker生成jenkins容器,支持Java Web项目持续集成、持续部署

    一.创建jenkins容器: 1.拉取jeknin镜像 sudo docker pull jenkins 2.创建一个jenkins目录 sudo mkdir /jenkins 3.在jenkins目 ...

  6. 关于Maven打包Java Web项目以及热部署插件Jrebel的使用

    Java Web/Eclipse/Maven/Tomcat 最近有个新项目是java web项目,记录一下,可能比较乱.虽然没接触过Java,但是eclipse还是用过的 初识项目 同事说,项目是ma ...

  7. Linux(Centos)之安装tomcat并且部署Java Web项目

    1.准备工作 a.下载tomcat linux的包,地址:http://tomcat.apache.org/download-80.cgi,我们下载的版本是8.0,下载方式如图:          b ...

  8. 阿里云部署Java web项目初体验(转)/linux 上配置jdk和安装tomcat

    摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在阿里云上部署Java web项目. 一.准备工作 购买了阿里云的云解析,和云服务器ecs. 2.下载put ...

  9. Java web 项目 tomcat部署方式.

    本地做Java Web项目的时候常常会用到tomcat部署测试的问题, 这里介绍项目的部署方法: 1,配置文件的形式: 例如: 你的项目目录为:f:\workspaces\MyProject,此时使用 ...

随机推荐

  1. golang http.client 遇到了 Connection reset by peer 问题

    最近一个 golang 写的 http.client 的,获取远程服务器数据,有时候会报错,尤其在数量很大的时候,老是收到 Connection reset by peer 这样的 提醒,都有点想用重 ...

  2. VS发布IIS Express,允许外网调式(如微信开发)

    环境 VS2015 IIS Express win10操作系统 natapp内网穿透 localhost && 127.0.0.1 && 本机内网IP 产生现象:VS调 ...

  3. 用Count() > 0 来判断集合非空的问题

    Linq 出现之前,我们通常使用下面的方式来判断集合是否非空,即集合包含元素: ]; ; var list = new List<string>(); ; var collection = ...

  4. zookeeper(1)-简单介绍

    参考:  https://www.cnblogs.com/wuxl360/p/5817471.html   zookeeper集群搭建 zookeeper集群原理和搭建 zookeeper集群搭建3 ...

  5. BZOJ.4212.神牛的养成计划(Trie 可持久化Trie)

    BZOJ 为啥hzw的题也是权限题啊 考虑能够匹配\(s1\)这一前缀的串有哪些性质.对所有串排序,能发现可以匹配\(s1\)的是一段区间,可以建一棵\(Trie\)求出来,设为\([l,r]\). ...

  6. 我的第一个chrome浏览器扩展 5分钟学习搞定

    注意: 文件名必须是 manifest, ,注意扩展名是json, 新建一个文件夹,然后创建一个文本文件,作为这个扩展程序的配置文件,所以文件名是manifest.json, 感谢https://ww ...

  7. 2018-4-5-cadence skill

    skill 是 Cadence 提供的二次开发语言,可以做很多有用的二次开发. 开发参考手册:<algroskill><sklangref><sklanguser> ...

  8. docker用法记录

    下载docker镜像 docker pull ubuntu 查看所有docker镜像 docker images 运行docker镜像且进入shell docker run -it ubuntu ba ...

  9. LOJ 6019

    挺没意思的题 全都读进去算一个每个阶乘的系数 然后算一遍每个数的系数 最后在质数处算一下答案 #include<bits/stdc++.h> using namespace std; #d ...

  10. sql server 查询当前月份日期列表数据

    SELECT ), ,) AS every_time, --日期 ,getdate())) ) AS Weekd --星期几 FROM master..spt_values n WHERE n.typ ...