gpt4 book ai didi

java - Tomcat 6 JAVA_HOME

转载 作者:IT老高 更新时间:2023-10-28 20:49:38 24 4
gpt4 key购买 nike

我尝试设置 JAVA_HOME 路径,因为我的 Tomcat 服务器正在寻找它。我正在尝试设置它,但它似乎不起作用,并且在我这样做时会导致错误。我正在尝试使用

在 setclasspath.bat 中设置 JAVA
set JAVA_HOME="C:\Program Files (x86)\Java\jre7"

这是 setclasspath.bat 的开头

set JAVA_HOME="C:\Program Files (x86)\Java\jre7"
if not "%JAVA_HOME%" == "" goto gotJdkHome
if not "%JRE_HOME%" == "" goto gotJreHome
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

当我设置它并运行“startup.bat start”时,它会显示

Files was unexpected at this time

你能帮帮我吗?

最佳答案

注意:我意识到这已经是一个很老的问题了,但这里发布的许多答案要么不完整,要么不准确。希望这有助于避免一些麻烦。

首先:Tomcat 不需要运行 JDK,只要知道它是 JRE,它就可以与 JRE 一起工作。

其次,原始问题的错误来自 set JAVA_HOME=... 命令的语法问题。 Apache 自己可以通过剥离和添加 " 引号更好地处理它。

另外,我强烈建议在 bin 文件夹中创建一个 setenv.bat 文件。默认情况下它不存在,因此如果您还没有,请创建它并在其中添加您的 set JAVA_HOME=...set JRE_HOME=... 行。

使用 JRE 运行

根据 running.txt :

The JRE_HOME variable is used to specify location of a JRE. The JAVA_HOME variable is used to specify location of a JDK.

Using JAVA_HOME provides access to certain additional startup options that are not allowed when JRE_HOME is used.

If both JRE_HOME and JAVA_HOME are specified, JRE_HOME is used.

因此,要以这种方式启动,您需要以下内容:

set "JAVA_HOME="
set "JRE_HOME=C:\Program Files (x86)\Java\jre7"

清除 JAVA_HOME 变量是一种故障安全措施,但这并不是真正需要的。根据文档,Tomcat 将首先尝试使用 JRE 变量。

问题中的问题解决方案

特别注意引号的位置。这种方式将整个字符串放在一个变量中,而不在变量内容本身中包含引号。

例如:

set %TEST%="hello"
echo "%TEST%"

会输出""hello""

set "%TEST%=hello"
echo "%TEST%"

会输出"hello"

因此,启动批处理文件脚本尝试使用 ""C:\Program Files (x86)\Java\jre7"",其中第一个非转义空格位于“Program "和 "文件"。

正如已经指出的那样,删除引号(至少在这种特殊情况下)会起作用,但依赖它是危险的。而是从一开始就谨慎行事,并将变量名 值用引号括起来。

关于java - Tomcat 6 JAVA_HOME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18468681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com