# command
java -Dkey1=value1 -jar demo.jar arg1=a1 arg2=a2 --key2=value2
-D JVM参数
arg main方法的args参数,按顺序来
-- springboot的方式,通过main的args传入进去的,会放入env环境变量里
1
2
3
4
5
2
3
4
5
# Linux
命令 | 注释 |
---|---|
nohup java -jar xxx.jar & | # 使用这种方式运行的程序日志会输出到当前目录下的nohup.out文件,使用ctrl+c中断或者关闭窗口都不会中断程序的执行。 |
nohup java -jar xxx.jar >java.out & | # >temp.out的意思是将日志输出重定向到java.out文件,使用ctrl+c中断或者关闭窗口都不会中断程序的执行。 |
nohup java -jar yourProject.jar >/dev/null 2>&1 & |
# >/dev/null
这条命令的作用是将标准输出1重定向到/dev/null中。 /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。
# 2>&1
这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。
1
2
3
4
2
3
4
# start.sh
#!/bin/bash
echo start deal fms
mv ruoyi-admin.jar /www/java/fms.jar
cd /www/java
nohup java -jar fms.jar >/dev/null 2>&1 &
echo end fms
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# stop.sh
#!/bin/bash
#项目名称
PROJECTNAME=mes.jar
pid=`ps -ef | grep $PROJECTNAME |grep -v "grep" |awk '{print $2}'`
if [ $pid ];then
echo "$PROJECTNAME is running and pid=$pid"
kill -9 $pid
if [[ $? -eq 0 ]];then
echo "success to stop $PROJECTNAME "
else
echo "fail to stop $PROJECTNAME "
fi
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# Docker
# 下载jdk
docker pull adoptopenjdk/openjdk11:jre
# alpine之所以小到这种程度,一个最根本的在于:它没有使用glibc这个主流Linux的C类库,而是选择了musl实现
# 主流Linux都是glibc,glibc的性能也高于musl的
# 如果你的服务,不依赖C,那alpine是合适的选择,否则不应当使用alpine做为基础镜像
1
2
3
4
5
2
3
4
5
# 运行jar
# windows
docker run -p 8090:8090 --name luowenJava -v E:/www/javaWorkspace/luowenJava/target:/www/javaWorkspace/luowenJava/target -d --rm adoptopenjdk/openjdk11:jre java -jar /www/javaWorkspace/luowenJava/target/luowen-1.0-SNAPSHOT.jar
docker run -v E:/www/javaWorkspace/luowenJava/target:/www/javaWorkspace/luowenJava/target -d --rm adoptopenjdk/openjdk11:jre java -jar /www/javaWorkspace/luowenJava/target/luowen-1.0-SNAPSHOT.jar
1
2
3
4
2
3
4
# linux
docker run -p 8090:8090 --name luowen -v /www/java:/www/java -d --restart=always adoptopenjdk/openjdk11:jre java -Dspring.profiles.active=u22 -jar /www/java/luowen.jar
# --spring.datasource.password=
# 暂不可用 --spring.config.location=/www/java/lwconf/
docker run --name fms --network host -v /www/java:/www/java -d --restart=always adoptopenjdk/openjdk11:jre java -Dspring.profiles.active=dock -jar /www/java/fms.jar
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 将lib提取出来运行时加载
生成jar包后将lib复制出来,重新生成不含lib的jar包
java -Dloader.path=你的lib文件路径 -jar xxx
1
2
2
<build>
<plugins>
<!--跳过测试类打包 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<skip>true</skip>
</configuration>
<!--<configuration>
<layout>ZIP</layout>
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>-->
</plugin>
<!-- maven打包插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.2.4.RELEASE</version>
</plugin>
</plugins>
<finalName>${project.artifactId}</finalName>
</build>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
← springSecurity 加密 →