https://www.oracle.com/java/technologies/downloads/#java8
从官网上下载linux版本的JDK
JDK下载地址
通过ftp或者rz命令上传到linux
我这里需要把JDK安装在/usr/local目录下,在/usr/local下新建文件加java
mkdir /usr/local/java
tar命令解压JDK包,解压地址是 /usr/local/java
tar -zxvf jdk-8u311-linux-x64.tar.gz
得到文件:jdk1.8.0_311
接下来配置环境变量
vim命令打开/etc/profile
vim /etc/profile
#Set Java_Environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_311
export JRE_HOME=/usr/local/java/jdk1.8.0_311/jre
export CLASSPATH=.:$JAVA_HOME/lib$:JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH
加载环境变量
source /etc/profile
验证是否安装成功
java -version
成功!
解决:Linux下-bash: nohup: command not found或者bash: nohup: 未找到命令的问题
首先,没有发现nohup,先安装
yum install coreutils
其次,如果已经安装 ,查看本地是否有,查看nohup具体位置(注意:nohup的字母不要打错,之前就是因为打成了“nohub”而浪费了很多时间的)
which nohup
再次,将具体位置进行配置
vim ~/.bash_profile
然后如下图所示,在环境变量PATH后面加上:usr/bin
然后,保存,刷新刷新生效
:wq
source ~/.bash_profile
最后,进行验证
nohup --version
在spring-boot项目中得用spring-boot的打包插件
这是spring-boot的打包插件
pom.xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
exclude>
excludes>
configuration>
plugin>
plugins>
build>
背景:采用Spring Cloud框架搭建了一个项目,里面包含多个微服务,其中项目A依赖项目B,项目B里面是公共类(model、utils等)
1.B项目pom不能引入spring-boot-maven-plugin插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
spring-boot-maven-plugin打包出来的jar是不可依赖的,这个插件会在Maven的package后进行二次打包,目的为了生成可执行jar包,正是因为产生了可执行jar包,所以A项目打包时就找不到B项目的类。
2.第一次打包,要在父工程打包,本次是将父工程中的modules打成jar包,所以这些modules不能引入spring-boot-maven-plugin插件。
2.第二次打包,打包基础服务模块,在微服务模块中打包
打包成功!
1查看当前jar的pid
ps -ef|grep jar包名
2.终止当前jar
kill -9 pid
3、启动指定项目
nohup java -jar jar包名 --server.port=指定端口号 > 日志文件.log 2>&1 &
&表示后台运行
比如我的
nohup java -jar demo1-0.0.1-SNAPSHOT.jar > /mydata/docker-file/logs/demo1-1239.log 2>&1 &
nohup 和 & 是保证后台运行不终止的意思,2>&1是将错误输出定位到左边的文件中
4、查看后台启动日志
tail -f /mydata/docker-file/logs/demo1-1239.log
1查看当前jar的pid
jps
2.终止当前jar
taskkill /pid 12345 -f
3.启动指定项目
@echo off
start javaw -jar D:\JavaApp\znzs_test\law_snapshot.jar
exit
vim Dockerfile
FROM openjdk:8-jdk-slim
LABEL maintainer=demo1-test
COPY target/*.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
target目录下
demo1-0.0.1-SNAPSHOT.jar
把Dockerfile和target目录上传linux服务器
注意: -t 全称为 -tag
docker build -t java-demo:v1.0 -f Dockerfile
#用这个
docker build -t java-demo:v1.0 .
查看镜像是否构建成功
docker images
docker run -d -p 8080:8080 java-demo:v1.0
#或者随便指定一个名称: --name myjava-app
docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0
-d表示后台运行,-p 指定端口,8080:8080 表示从机器的8080映射到 ==> java的8080
http://192.168.66.30:8080/hello
1、
#查看容器id
docker ps
2、
#根据容器id查看容器运行日志
docker logs CONTAINER ID
#根据容器id查看容器运行的全部日志,日志持续更新
docker logs -f CONTAINER ID
如果访问不了应用,就查看防火墙端口是否开放
查看防火墙状态
systemctl status firewalld
开启防火墙
systemctl start firewalld.service
添加端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
重启防火墙
systemctl restart firewalld.service
查看所有开放的端口
firewall-cmd --list-ports
关闭防火墙
systemctl stop firewalld.service
如果出错,想重新构建镜像,可以先删除docker镜像,再重新构建!
1、
docker ps -a
2、
docker rm CONTAINER ID
3、
docker images
4、
docker rmi IMAGE ID
分享镜像给其他新的服务器
docker login
给原来的镜像起一个新的名(一定得加前缀)
docker tag 名字 前缀/名字
docker tag java-demo:v1.0 xb1314d/java-demo:v1.0
#注意: 前缀一定得是自己得账号名,否则推送会失败
docker push xb1314d/java-demo:v1.0
登录docker.hub仓库查看
https://registry.hub.docker.com/
https://hub.docker.com/repositories
镜像推送成功 !
这个时候就可以从其他服务器下载这个镜像了
登录docker.hub仓库
docker login
下载镜像
docker pull xb1314d/java-demo:v1.0