Centos中将openjdk切换为Oracle Jdk导致Tomcat无法正常启动的问题

设置JDK环境变量,并且命令行使用java -version

使用service tomcat-web1 start命令报下面的错误

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined. At least one of these environment variable is needed to run this program

注:tomcat-web1为Tomcat服务名,Tomcat设置服务的方法网上有很多不再赘述

一种方法是修改setclasspath.sh,在sh脚本开头加入

JAVA_HOME=/usr/lib/java-1.7.0

但是这种方法并不好,如果Java home发生变化还需要修改shell

所以用另一种方法,先看shell脚本

CATALINA_HOME_DATA=/usr/local/tomcat/tomcat7.0
start_tomcat=$CATALINA_HOME_DATA/bin/startup.sh
stop_tomcat=$CATALINA_HOME_DATA/bin/shutdown.sh

start(){
    ${start_tomcat}
    if [ $? -eq 0 ]; then
        printf "Tomcat7-data started \t\t\t\t\t[\033[32m OK \033[m]\n";
    else
        printf "Tomcat7-data started \t\t\t\t\t[\033[31m FAIL \033[m]\n";
    fi

}

service运行指定服务(称之为System V初始脚本)时,把大部分环境变量去掉了,只保留LANG和TERM两个环境变量,并且把当前路径置为/,也就是说是在一个可以预测的非常干净的环境中运行服务脚本。

所以在脚本运行的时候找不到环境变量,所以修改成下面的脚本

CATALINA_HOME_DATA=/usr/local/tomcat/tomcat7.0
start_tomcat=$CATALINA_HOME_DATA/bin/startup.sh
stop_tomcat=$CATALINA_HOME_DATA/bin/shutdown.sh

start(){
    su - root -c "${start_tomcat}"
    if [ $? -eq 0 ]; then
        printf "Tomcat7-data started \t\t\t\t\t[\033[32m OK \033[m]\n";
    else
        printf "Tomcat7-data started \t\t\t\t\t[\033[31m FAIL \033[m]\n";
    fi

}

su - root -c “${start_tomcat}”

-表示执行环境变量

-c是执行命令

整体命令的意思是使用root用户且带环境变量的方式执行/usr/local/tomcat/tomcat7.0/bin/startup.sh命令

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-29 04:13:58

Centos中将openjdk切换为Oracle Jdk导致Tomcat无法正常启动的问题的相关文章

linux 下安装jdk、tomcat并开机启动

jdk的安装  1.首先,去oracle官网下载对应的jdk或者jre安装包,如果是纯生产环境可以安装jre而不安装jdk,安装jdk便于调试. 2. 使用wget url下载rpm安装包,使用rpm -ivh 安装包路径 安装. 3.进入/etc/, 使用vi命令修改profile文件 vi profile,在文件末尾加上如下代码 #set java environment JAVA_HOME=/usr/java/jdk1.8.0_65 CLASSPATH=.:$JAVA_HOME/lib/d

CentOS卸载OpenJDK并安装Sun JDK

第一步:查看Linux自带的JDK是否已安装 (卸载centOS已安装的1.4) 安装好的CentOS会自带OpenJdk,用命令 java -version ,会有下面的信息: java version "1.6.0"OpenJDK Runtime Environment (build 1.6.0-b09)OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode) 最好还是先卸载掉openjdk,在安装sun公司的jdk. 先查看 r

在centos上搭建JavaWeb环境(jdk+mysql+tomcat)

1.安装OpenJDK yum list java* yum install java-1.7.0-openjdk* -y java -version 2.安装Tomcat cd /usr/local wget https://mc.qcloudimg.com/static/archive/fa66329388f85c08e8d6c12ceb8b2ca3/apache-tomcat-7.0.77.tar.gz tar -zxf apache-tomcat-7.0.77.tar.gz mv apa

[转帖] 部分收费的Oracle JDK VS 完全免费的OpenJDK

来源: http://www.flammulina.com/2018/10/28/%E9%83%A8%E5%88%86%E6%94%B6%E8%B4%B9%E7%9A%84oracle-jdk-vs-%E5%AE%8C%E5%85%A8%E5%85%8D%E8%B4%B9%E7%9A%84openjdk/ 本文将讨论Oracle JDK和OpenJDK之间的区别.注意目前 OpenJDK 和 Oracle JDK 仅由Oracle创建和维护.在详细介绍之前,让我们回顾一下JDK是什么,在开始对比

使用Docker构建CentOS 7 + Tomcat 7 + Oracle JDK 7的WEB服务器

方案一: Docker创建时利用wget下载Tomcat最新版本构建 # CentOS 7 + Oracle  JDK 7 + Tomcat 7    FROM centos:centos7     MAINTAINER yuj <[email protected]>        RUN yum install -y  java-1.7.0-openjdk.x86_64 wget tar     ENV TOMCAT_MAJOR_VERSION 7     ENV TOMCAT_MINOR_

Oracle JDK vs OpenJDK

OpenJDK是Sun在2006年末把Java开源而形成的项目,这里的"开源"是通常意义上的源码开放形式,即源码是可被复用的,例如IcedTea.UltraViolet都是从OpenJDK源码衍生出的发行版. Oracle JDK采用了商业实现,而OpenJDK使用的是开源的FreeType.当然,"相同"是建立在两者共有的组件基础上的,Oracle JDK中还会存在一些Open JDK没有的.商用闭源的功能,例如从JRockit移植改造而来的Java Flight

你安装的是 SUN/Oracle JDK 还是 OpenJDK ?

目录 1 如何查看你安装的 JDK 版本 1.1 要用到的命令行工具 1.2 查看的命令 1.2.1 如果是 SUN/OracleJDK, 显示信息为: 1.2.2 如果 OpenJDK, 显示信息为: 2 什么是 OpenJDK 2.1 OpenJDK 的来历 2.2 Oracle JDK 的来历 3 Oracle JDK 与 OpenJDK 的区别 3.1 主要不同 3.2 授权协议的不同 3.3 OpenJDK 不包含 Deployment 功能 3.4 OpenJDK 源码不完整 1 如

Fedora Server 21下OpenJdk和Oracle Jdk共存

参考文章:博客园-三维蚂蚁 Linux公社 1.首先需要下载对应平台的Jdk:Oracle 官网 2.使用yum或rpm命令安装Jdk: yum install ./jdk-8u40-linux-x64.rpm 3.配置环境变量 vi /etc/profile 后在倒数第三行处输入下面的内容: export JAVA_HOME=/usr/java/jdk1.8.0_40 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/

CentOS IP丢失,切换了网络连接导致的vmnet8未启用dhcp

解决了, 这个问题是我在开启虚拟机ubuntu系统的过程中, 在主机win7上切换了网络连接导致的, 就是刚开始我用的无线宽带上网, 此时开启了ubuntu ,然后使用过程中,我在win7上切换回静态连接有线上网, 此时ubuntu断网, 这个问题是, 在主机切换网络之后, ubuntu并没有识别到当前网络变化 一直在沿用之前的网络,但是主机已经不再提供之前的网络了, 所以ubuntu顺利断网, 要想恢复网络, 就需要在ubuntu中 ip/ stop , renew release 一下,就是