# 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

# 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

# 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

# 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

# Docker

# 下载jdk

docker pull adoptopenjdk/openjdk11:jre

# alpine之所以小到这种程度,一个最根本的在于:它没有使用glibc这个主流Linux的C类库,而是选择了musl实现
# 主流Linux都是glibc,glibc的性能也高于musl的
# 如果你的服务,不依赖C,那alpine是合适的选择,否则不应当使用alpine做为基础镜像
1
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
# 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

# 将lib提取出来运行时加载

生成jar包后将lib复制出来,重新生成不含lib的jar包
java -Dloader.path=你的lib文件路径 -jar xxx
1
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