通过idea生成jar包

点击 File -> Project Structure 再如下图所示操作
img
选择主类(也就是Main函数所在的类),选择一个manifest.mf文件目录
img
创建一个jar包的实例,引入/排除相关的依赖和jar
img
编译一下,然后去输出目录找到所需要的jar包
img

执行 java -jar XXX.jar [param1] [param2] 执行jar包 (没有参数可以省略)

部署到服务器

普通网络应用部署

  • 安装Java环境 yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel

  • 将部署的包推送到服务器 ,推送到用户目录scp ROOT.war root@imisty.cn:~

  • 打开防火墙 ,开放指定的端口

  • 打开阿里云实例安全组,设置端口的访问规则;

域名解析

  • 在域名控制台点击解析,然后配置好解析设置
    img

  • 复制分配的DNS服务器地址

  • 配置DNS服务器地址
    img

  • 最后一步也是非常关键的一步 ,在解析控制台,勾选配置好的添加记录,然后点击启用即可

  • 终端输入命令啊dig www.imisty.cn,查看域名和端口的对应关系,验证解析的结果

linux前台运行和后台运行

  • java -jar xxxx.jar执行,会占用当前的终端, 当我们退出putty或终端的时候,xxxx.jar这个程序也会停止。

  • 为了保证程序能够一直运行,应该改为这样运行:nohup java -jar xxx.jar&命令,则程序会在后台一直运行,

  • 值得注意的是,此时程序控制台输出会被转移到nohup.out文件中,这个nohup.out文件的位置就在jar包的当前文件夹内。

执行命令说明

  • & 命令 : 加在一个命令的最后,可以把这个命令放在后台执行

  • nohup 不挂断运行命令

    • nohup ./imisty.sh &
    • nohup ./test &

查看当前后台运行的命令

  • jobs 查看当前终端后台执行的任务,换了终端就看不到了,而ps命令用于查看瞬间进程的状态,可以看到别的终端运行的后台进程;

  • 关闭当前后台运行的命令,kill命令,结束进程,如果后台有多个命令

    1.  通过jobs命令查看`jobnum`,然后执行   kill %jobnum
    
    2.  通过ps命令查看进程号PID,然后执行  kill %PID
    
    3.  如果是前台进程的话,直接执行 Ctrl+c 就可以终止了
    
  • 前后台进程的切换和控制
    *   `fg`命令 将后台中的命令调至前台继续运行,如果后台有多个命令,可以先用jobs查看 `jobnum` ,然后用 `fg %jobnum`将选中的命令调出;
    
    • Ctrl + Z 将一个前台正在执行的命令放到后台,并且处于暂停状态;
    • bg 将一个在后台暂停的命令,变成在后台继续执行,如果后台中有多个命令,可以先用jobs查看jobnum,然后用 bg %jobnum将选中的命令调出继续执行。

扩展Centos7 防火墙相关的命令

  • 查看端口占用情况 netstat -lnp |grep 8002 , netstat -tunlp |grep 端口号

1.启动防火墙
systemctl start firewalld

2.禁用防火墙
systemctl stop firewalld

3.设置开机启动
systemctl enable firewalld

4.停止并禁用开机启动
sytemctl disable firewalld

5.重启防火墙
firewall-cmd --reload

6.查看状态
systemctl status firewalld或者 firewall-cmd --state

7.查看版本
firewall-cmd --version

8.查看帮助
firewall-cmd --help

9.查看区域信息
firewall-cmd --get-active-zones

10.查看指定接口所属区域信息
firewall-cmd --get-zone-of-interface=eth0

11.拒绝所有包
firewall-cmd --panic-on

12.取消拒绝状态
firewall-cmd --panic-off

13.查看是否拒绝
firewall-cmd --query-panic

14.将接口添加到区域(默认接口都在public)
firewall-cmd --zone=public --add-interface=eth0(永久生效再加上 --permanent 然后reload防火墙)

15.设置默认接口区域
firewall-cmd --set-default-zone=public(立即生效,无需重启)

16.更新防火墙规则
firewall-cmd --reload或firewall-cmd --complete-reload(两者的区别就是第一个无需断开连接,就是firewalld特性之一动态 添加规则,第二个需要断开连接,类似重启服务)

17.查看指定区域所有打开的端口
firewall-cmd --zone=public --list-ports

18.在指定区域打开端口(记得重启防火墙)
firewall-cmd --zone=public --add-port=80/tcp(永久生效再加上 --permanent)