前言: 暂无

零: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. vmware安装VMTools , VirtualBox "安装增强功能"

    https://www.vmware.com/support/ws45/doc/new_guest_tools_ws.html 直接参考官方文档,中文没找到啥有用的资料 https://www.cnb ...

  2. Java - 数组详解(图解数组的基本操作)

    目录 什么是数组 数组的定义和内存分配 数组的赋值和访问 数组的注意事项 数组的内存图解 数组的插入 数组的删除 数组的扩容 数组的反转 首先 什么是数组 数组是一组地址连续.长度固定的具有相同类型的 ...

  3. 使用smb映射到本地时 访问权限,请联系管理员错误

    1 这个原因是违反了 SELinux安全策略导致的 2 解决办法  关闭SELinux 先使用getenforce ,如果是Enforcing 就使用setenforce 0 关闭

  4. c#几种随机数组和数组乱序

    相关资料MSDN:RNGCryptoServiceProvider   Random   Guid private static RNGCryptoServiceProvider rngCsp = n ...

  5. python练习题目

    1.查看本机安装python版本 2.用python打印"Hello World",给出源代码和执行结果 a.命令行窗口输出(前提:python程序加入PATH系统环境变量) b. ...

  6. 离校登记网页项目个人总结(Alpha阶段)

    个人小结 在Alpha阶段,我和我的小团队六人,经过六天的努力完成了我们最初需求分析里的基本功能,在这里为我们团队的成功表示祝贺.在这个过程中,对于自己的表现觉得既有做的好的方面,也有很多不足需要改进 ...

  7. ztree设置节点checked,选中某节点等相关操作

    ztree设置节点checked,选中某节点等相关操作 1.根据id获取树的某个节点: var zTree = $.fn.zTree.getZTreeObj("mytree"); ...

  8. React+Ant Design设置左侧菜单导航路由的显示与隐藏(与权限无关)

    最近在学习react时,用到了很流行的UI框架Ant Design,也了解了一下Ant Design Pro,发现它们都有导航组件,Ant Design框架的导航菜单在这里,Ant Design Pr ...

  9. SSM 框架搭建

    SSM框架搭建(Spring.SpringMVC.Mybatis) 一:基本概念 Spring :      Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框 ...

  10. Windows下编译jcef

    依赖软件参考 本文参考官方网站上的jcef编译过程 编译成功的环境如下: windows 10 64 bit JDK 1.8.0_121 64 bit Python 2.7.13 git versio ...