Neither the JAVA_HOME nor the JRE_HOME environment variable is defined ;At least one of these enviro

本文介绍了解决Linux环境下Tomcat启动时报错“Neither the JAVA_HOME nor the JRE_HOME environment variable is defined”的方法。通过重新加载/etc/profile文件,解决了因环境变量丢失导致的问题。

inux下,关闭和重启tomcat时报错:

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以前是正常的,突然重启下tomcat时报了这个错,错误大致是环境变量不可用造成的,

在网上找了很久都是说要修改setclasspath.bat(该文件路径在tomcat的bin目录下)文件;在文件中加入JAVA_HOME和JRE_HOME的环境变量,

我也在该文件中加了如下:

rem Make sure prerequisite environment variables are set

rem In debug mode we need a real JDK (JAVA_HOME)

export JAVA_HOME=/usr/local/jdk1.7.0_79
export JRE_HOME=${JAVA_HOME}/jre

if ""%1"" == ""debug"" goto needJavaHome

rem Otherwise either JRE or JDK are fine
if not "%JRE_HOME%" == "" goto gotJreHome
if not "%JAVA_HOME%" == "" goto gotJavaHome
echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
echo At least one of these environment variable is needed to run this program
goto exit

:needJavaHome
rem Check if we have a usable JDK
if "%JAVA_HOME%" == "" goto noJavaHome
if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
if not exist "%JAVA_HOME%\bin\javaw.exe" goto noJavaHome
if not exist "%JAVA_HOME%\bin\jdb.exe" goto noJavaHome
"setclasspath.bat" [dos] 97L, 3509C

保存好文件,再次运行./startup.sh 

仍然报错:

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也是正常的,会不会在linux在运行的内存里面丢失了JAVA_HOME和JRE_HOME

的环境变量参数,如果是那样,就重新写入/etc/profile环境变量就ok了。

接着我运行了#source /etc/profile

重新写入profile配置文件

运行#java -version 

奇迹出现了

java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

切换到tomcat的bin目录下

运行#./startup.sh

tomcat运行成功!

原文地址:http://www.bubuko.com/infodetail-1307842.html

在运行 Java 程序时,如果遇到错误提示 `Neither JAVA_HOME nor JRE_HOME environment variable is defined`,说明系统无法找到 Java 的安装路径。此问题通常出现在未正确配置环境变量的情况下。以下是解决此问题的详细步骤: ### 1. 确定 Java 安装路径 首先,需要确认 Java 是否已经安装在系统中。可以通过以下命令检查: ```bash update-alternatives --list java ``` 如果系统返回类似 `/usr/lib/jvm/java-11-openjdk-amd64/bin/java` 的路径,则表示 Java 已安装。通常,`JAVA_HOME` 应指向该路径的父目录,例如 `/usr/lib/jvm/java-11-openjdk-amd64`。 ### 2. 设置 `JAVA_HOME` 环境变量 #### 在 Linux 或 macOS 上设置 `JAVA_HOME` 编辑用户环境变量配置文件,例如 `~/.bashrc`、`~/.zshrc` 或 `~/.profile`,并添加以下内容: ```bash export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH ``` 保存文件后,运行以下命令使配置生效: ```bash source ~/.bashrc ``` #### 在 Windows 上设置 `JAVA_HOME` 1. 打开“控制面板” > “系统和安全” > “系统” > “高级系统设置”。 2. 点击“环境变量”。 3. 在“系统变量”部分,点击“新建”并添加: - 变量名:`JAVA_HOME` - 变量值:`C:\Program Files\Java\jdk1.8.0_291`(根据实际安装路径修改) 4. 更新 `Path` 变量,添加 `%JAVA_HOME%\bin`。 ### 3. 验证 `JAVA_HOME` 是否设置成功 运行以下命令验证环境变量是否生效: ```bash echo $JAVA_HOME ``` 如果输出正确的 Java 安装路径,则表示 `JAVA_HOME` 已正确设置。接下来可以运行 `java -version` 和 `javac -version` 来确认 Java 和编译器是否正常工作[^2]。 ### 4. 自动化脚本设置 `JAVA_HOME` 对于自动化部署或 CI/CD 流程,可以使用脚本动态检测 Java 安装路径。例如,在 Linux 系统中可以编写如下脚本: ```bash #!/bin/bash # 自动检测 Java 安装路径 JAVA_PATH=$(readlink -f /usr/bin/java | sed "s:/jre/bin/java::") # 设置 JAVA_HOME export JAVA_HOME=$JAVA_PATH export PATH=$JAVA_HOME/bin:$PATH # 验证 echo "JAVA_HOME is set to: $JAVA_HOME" java -version ``` ### 5. 使用工具管理多个 Java 版本 如果系统中安装了多个 Java 版本,建议使用 `update-alternatives`(Linux)或 `jenv`(macOS)来管理 `JAVA_HOME`。例如,在 Linux 上可以使用以下命令切换 Java 版本: ```bash sudo update-alternatives --config java ``` 选择对应的 Java 版本后,系统会自动更新 `JAVA_HOME`。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值