CentOS7配置JDK11记录

  • centos7配置(云服务器略过)

我是虚拟机,安装的centos7.5-minimal 没有ens33的ip,另额外配置

# ~_~
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#修改为yes 启动网卡
ONBOOT=yes

配置防火墙

# 因为是本地我直接关闭了防火墙, 以下是基本的防火墙的配置命令
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
# 查看防火墙规则
firewall-cmd --list-all

# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放8080端口
firewall-cmd --permanent --add-port=8080/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload 

配置阿里DNS

vim /etc/resolv.conf
#末尾加入
nameserver 223.5.5.5
nameserver 223.6.6.6
  • 配置openjdk11,tomcat,jetty

#解压
tar -zxvf openjdk-11.0.1_linux-x64_bin.tar.gz
#配置环境变量
vim /etc/profile
#在内容最下添加 JAVA_HOME是jdk的位置
# set java environment
JAVA_HOME=/usr/app/jdk-11.0.1/
CLASSPATH=$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME CLASSPATH

#保存退出 重新加载环境变量
source /etc/profile

#测试java 显示版本号则成功
java -version

#弄好tomcat9 启动试试???
sh bin/start.sh
# 报错如下...
/usr/app/apache-tomcat-9.0.13/bin/catalina.sh: line 464: /usr/app/jdk-11.0.1/jre/bin/java: No such file or directory
#意思是没有jre???
#然后用jdk生成jre
cd /usr/app/jdk-11.0.1/
jlink --module-path jmods --add-modules java.base --output jre

# 再次启动tomcat,又报错如下
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
WARNING: Unknown module: java.rmi specified to --add-opens
Exception in thread "main" java.lang.NoClassDefFoundError: java/util/logging/Logger
        at org.apache.juli.logging.DirectJDKLog.<init>(DirectJDKLog.java:61)
        at org.apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.java:181)
        at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:116)
        at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:139)
        at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:194)
        at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:52)
Caused by: java.lang.ClassNotFoundException: java.util.logging.Logger
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 6 more
# 提示没有java.util.logging.Logger??这是jdk中的jar么?我基础不好,谁知道请指教一下!感谢!
# 以上我已经在windows环境测试过了,完全ok,也不需要配置jre!!!

# 我很生气 突然想到还有个jetty 来吧,试试jetty!!!
# 下载 解压 进入到jetty目录, 启动!!!
java -jar start.jar
#或者这个 指定stop端口和后台运行
nohup java -DSTOP.PORT=9998 -DSTOP.KEY=secret -jar start.jar &
#停止jetty
java -DSTOP.PORT=9998 -DSTOP.KEY=secret -jar start.jar --stop
# 或者 sh bin/jetty.sh start
# 哎呦不错哦!启动成功了... tomcat辣鸡... jdk模块化功能不会用的锅?
# 然后配置上nginx代理一下,完美...
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install epel-release
yum install nginx -y
systemctl start nginx
# 测试有木有问题!改一下代理
    server {
        listen 80;
        server_name localhost;
        location / {
            proxy_pass http://localhost:8080;
        }
    }

# 保存重启
systemctl reload nginx
# 设置系统启动开启nginx
systemctl enable nginx

# 测试ok,部署上线!!!
  • Tomcat启动失败解决办法

# 12月20日更新
# 在/etc/profile文件中指定jre的位置为jdk的位置, tomcat启动失败的问题解决! 
# 我猜是tomcat如果没有在环境变量中找到jre的位置,就会默认到jdk的目录下寻找jre,但是jdk11中已经没有jre了,需要单独生成,但是我不会使用模块化,那就直接指定jre为jdk的位置吧,反正jdk包括jre.(瞎猜瞎猜 都是瞎猜)

# /etc/profile文件末添加如下, 解决jre找不到的问题
JAVA_HOME=/usr/app/jdk-11.0.1/
JRE_HOME=$JAVA_HOME
CLASSPATH=$JAVA_HOME/lib
PATH=$JRE_HOME/bin:$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME CLASSPATH

 

转载于:https://my.oschina.net/jiangqw/blog/2980037

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值