准备:如果是springboot项目,那么在pom文件中,要加入springboot的build插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
导出Jar包
第一步:右键项目,Run As- Maven clean
第二步:右键项目,Run as - Maven install
第三步:找到打好的Jar包,在项目的目录下,会有一个target目录,jar包就在这里
服务器上运行:
第一步:确定端口号没有被占用:
sudo netstat -anp|grep 9900
如果被占用,就会出现如下显示的一行:
最后一列,可以看到,此端口号,被pid为12017,名为java的进程占用了。
如果可以的话,我们就直接Kill掉此进程,或者换一个端口号启动。
第二步:找到jdk的安装路径
执行命令: java -verbose,可以在最后一行找到安装路径。记住路径,下一步要用。
第三步:启动项目
nohup /data/jdk1.8.0/bin/java -server -Xms16g -Xmx16g -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=8080 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.1.1 -jar -Dloader.path="./patch" -Dspring.profiles.active=prod XXX.jar >> nohup.out 2>&1 &
我们来逐行解析这个命令:
nohup:不挂断地运行命令。
最后一个字符& :在后台运行,通常和nohup一起使用,nohup command &
/data/jdk1.8.0/bin/java :指定运行的java版本,也就是第二步中我们找到路径,可以不指定路径,直接java -jar,这样会使用默认的javaHome版本
-server : 配置运行的jvm环境。
-Xms:为jvm启动时分配的内存
-Xmx:为jvm运行过程中分配的最大内存,这里配置的就是一个jvm进程最多只能占用16G内存
-Dcom.sun.management.jmxremote:是否支持远程JMX访问,默认true
-Dcom.sun.management.jmxremote.port : 监听端口号,方便远程访问
-Dcom.sun.management.jmxremote.authenticate : 是否需要开启用户认证,默认开启
-Dcom.sun.management.jmxremote.ssl : 是否对连接开启SSL加密,默认开启
-Djava.rmi.server.hostname : 服务器的Ip地址或者域名
-jar 启动jar包
-Dloader.path :加载路径,也就是编译后的路径,补丁包的位置
-Dspring.profiles.active :指定读取的配置文件。比如这里我们就会读取application-prod.properties
xxx.jar : 运行哪个jar包
/ >> nohup.out :日志打印的路径 ,忽略最前面的/,这里markdown语法有限制,不能直接打>>
2>&1 : 简单理解,就是标准输出和标准错误输出都输出到nohup.out目录
提供一个简单的启动命令:
nohup java -jar XXX.jar >> nohup.out 2>&1 &