2

我正在尝试为某些密码创建摘要。

运行以下命令时

C:\Program Files\apache-tomcat-7.0.34\bin> digest.bat -a SHA-256 somepassword

我收到以下错误

The JRE_HOME environment variable is not defined correctly
This environment variable is needed to run this program

JRE_HOME 的值为C:\Program Files\Java\jre7

我已经尝试.;\bin后面的前面(有和没有分号和/或尾随反斜杠),但问题仍然存在。

  1. tomcat的版本是7.0.34

  2. java的版本是jre7

  3. 操作系统是 Win7 Pro 64 位

我的下一步是安装不同版本的 JRE 并重试,感谢您的帮助。

4

1 回答 1

2

%CATALINA_HOME%\bin\tool-wrapper.bat文件中,从digest.bat内部引用:

rem   JAVA_HOME       Must point at your Java Development Kit installation.
rem                   Using JRE_HOME instead works as well.
rem
rem   JRE_HOME        Must point at your Java Runtime installation.
rem                   Defaults to JAVA_HOME if empty. If JRE_HOME and JAVA_HOME
rem                   are both set, JRE_HOME is used.


换句话说,只需将JAVA_HOME 设置为指向JDK(不是 JRE)安装,一切都会正常工作(在我的机器上测试过)。

我机器上的示例JAVA_HOME

JAVA_HOME=C:\Program Files\Java\jdk1.7.0_17

更新

从位于 Tomcat 目录中的running.txt文件:

(3) 配置环境变量

Tomcat 是一个 Java 应用程序,不使用环境变量。 Tomcat 启动脚本使用这些变量。脚本使用变量来准备启动 Tomcat 的命令。

(3.1)设置CATALINA_HOME(必填)和CATALINA_BASE(可选)

CATALINA_HOME 和 CATALINA_BASE 环境变量分别用于指定 Apache Tomcat 的位置及其活动配置的位置。

CATALINA_HOME 环境变量应按照上面 (2.2) 中的定义进行设置。Tomcat 启动脚本有一些逻辑可以在不存在时自动设置此变量(基于 Unix 中脚本的位置和 Windows 中的当前目录),但此逻辑可能不适用于所有情况。

CATALINA_BASE 环境变量是可选的,在下面的“多个 Tomcat 实例”部分中有进一步的描述。如果不存在,则默认等于 CATALINA_HOME。

(3.2)设置 JRE_HOME 或 JAVA_HOME (必填)

JRE_HOME 变量用于指定用于启动 Tomcat 的 JRE 的位置。

JAVA_HOME变量用于指定 JDK 的位置。它用于代替 JRE_HOME。

使用JAVA_HOME 可以访问使用 JRE_HOME 时不允许的某些附加启动选项。

如果同时指定了 JRE_HOME 和 JAVA_HOME,则使用 JRE_HOME。


附加阅读:Tomcat:启动

于 2013-04-17T20:07:32.180 回答