即使JAVA_主路径正确,Tomcat也没有运行

即使JAVA_主路径正确,Tomcat也没有运行,java,apache,tomcat,windows-7,java-home,Java,Apache,Tomcat,Windows 7,Java Home,当我尝试使用startup.bat运行tomcat时,我得到以下错误: The JAVA_HOME environment variable is not defined correctly This environment variable is needed to run this program NB: JAVA_HOME should point to a JDK not a JRE 但是我尝试了C:\>echo%java\u home%,结果如下 C:\Program Files\J

当我尝试使用
startup.bat运行tomcat时,我得到以下错误:

The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE
但是我尝试了
C:\>echo%java\u home%
,结果如下

C:\Program Files\Java\jdk1.6.0_25\bin
我甚至尝试将
JAVA\u HOME
手动设置为系统变量列表,但这个问题仍然存在

我能做些什么来解决它

我正在使用Windows7


更新 在设置一个名为JAVA_HOME的新系统变量并将其路径设置为
“C:\Program Files\JAVA\jdk1.6.0_25\bin\”
之后,我再次尝试启动脚本,这一次出现了一个新错误

D:\Work\apache-tomcat-6.0.35\bin>startup.bat
Files\Java\jdk1.6.0_25"" was unexpected at this time.
你知道这个错误是什么意思吗


我甚至尝试将路径设置为
“C:\Program Files\Java\jdk1.6.0_25\”
(即没有bin),但出现了相同的错误。

尝试在其他地方安装Java—在没有空格的目录中。再次设置
JAVA\u HOME
变量,然后重试。我记得Tomcat在WindowsXP上遇到了一些问题,如果它在启动包含空格的窗口时使用了任何变量,那么它就会使用空格。也许它与Windows7类似

我记得我必须更改Tomcat java类中处理Tomcat启动的一些行

@Edit:卢西亚诺抢先让我注意到了这一点,但你也应该将
bin
JAVA\u主页中删除


@Edit:我还记得另一个修复方法(虽然我自己没有测试过)是将
JAVA\u HOME
设置为速记版本,例如
C:\Progra~1\JAVA\jdk1.6.0\u 25
我认为您的JAVA\u HOME应该指向

C:\Program Files\Java\jdk1.6.0_25
而不是

C:\Program Files\Java\jdk1.6.0_25\bin
也就是说,没有bin文件夹

更新


如果我像你一样用引号设置JAVA_HOME,我就会看到这个新错误。你在用引号吗?如果是,请删除它们。

避免在任何环境变量的末尾使用分号。。。从JAVA_主页或JRE_主页

JAVA_HOME=C:\Program Files\Java\jdk1.6.0_25\bin

应如图所示…

设置环境变量([Windows键]+[Pause键],切换到“高级”,单击“环境变量”,在“系统变量”(下列表)中,单击“新建”(或“编辑”(如果您已经拥有它)

姓名: 爪哇之家酒店

价值: C:\PROGRA~1\Java\JDK16~1.0\u 3

对于C:\Program Files\Java\jdk1.6.0\U 32

单击“确定”

转到“系统变量”中的“路径”

添加;在行的末尾(除非已经有一个)

加: C:\PROGRA~1\Java\JDK16~1.0\u 3\bin

全部单击“确定”-重新启动计算机(建议)

我设置了

变量名:JAVA_HOME 值:C:\Program Files\Java\jdk1.6.0\U 32

我在系统/环境变量中设置了这些属性,没有分号,tomcat正在我的系统上运行


它真的很有效。

还要确保您拥有适用于CPU类型的正确版本的Tomcat。我在32位O/S上安装了64位Tomcat,但它给了我JAVA_HOME异常,而事实并非如此。

从JAVA_HOME中删除“bin”。这就解决了问题。

我已经安装了Win 8 x86。我的
路径e有条目
C:\Program Files\Java\jdk1.6.0\u 31\bin
,我还有以下变量:

  • JAVA\u HOME
    C:\ProgramFiles\JAVA\jdk1.6.0\u 31;
  • JRE\u HOME
    C:\Program Files\Java\jre6;
我的tomcat安装在
C:\Program Files\Apache软件基金会\Apache-tomcat-7.0.41

但这对我还是不起作用

我尝试用
Progra~1
替换这些路径中的
程序文件
。我还尝试将JAVA移动到另一个文件夹,使其完整路径不包含任何空格。但没有任何效果

最后,对我有效的环境变量有:

  • 保持路径变量与完整的
    程序文件
    相同,即
    C:\Program Files\Java\jdk1.6.0\u 31\bin
  • JAVA\u HOME
    C:\ProgramFiles\JAVA\jdk1.6.0\u 31
  • 已删除
    JRE\u主页
因此,我所做的是删除了
JRE_HOME
并删除了
JAVA_HOME
末尾的分号。虽然我删除了分号,但我认为分号不应该是一个问题。我正在提供这些设置,因为在谷歌搜索了很多次之后,我什么都不起作用,突然这些似乎起作用了。你可以复制一下,看看它是否适合你

这也适用于Win 7 x64,其中

  • 包含的路径变量
    C:\ProgramFiles(x86)\Java\jdk1.7.0\u 17\bin
  • JAVA\u HOME
    设置为
    C:\Program Files(x86)\JAVA\jdk1.7.0\u 17
    (不带分号)

请告诉我这是为什么,我知道删除JRE_HOME是一个奇怪的解决方案,但是你猜它有什么不同吗?

有两种类型的环境变量 第一个用户变量,如果您在此路径中选择它,它将仅适用于该特定用户。 第二个是系统变量,如果在其中设置路径,则所有类型的用户都会使用它。。 在我的系统中,我在系统变量中设置JAVA_HOME,它不工作,然后我在 用户变量它正在工作…所以请尝试两种类型的环境变量

First Run the tomcat directly through the tomcat /bin folder with 
startup.bat if running sucessful the set the variable as below sample    
JAVA_主值:C:\Program Files\JAVA\jdk1.6.0_32

路径:C:\ProgramFiles\Java\jdk1.6.0\U 32\bin

CATALINA_HOME=C:\Program Files\Apache软件基金会\Apache Tomcat 7.0.27

路径=%PATH%;%JAVA_HOME%\bin;%CATALINA_HOME%\bin


如果需要类路径:%CATALINA\u HOME%\lib;%JAVA\u HOME%\lib;

有时分号很重要 请确保

JAVA_HOME=c:\Program Files\Java\jdk1.6.0_32 
但不是

JAVA_HOME=c:\Program Files\Java\jdk1.6.0_32;

我遇到了同样的问题,但没有解决

在没有\bin的情况下为JAVA\u HOME和JRE\u HOME设置环境变量。
我删除了Tomcat并再次解压,它成功了。

删除分号,您可以看到该链接:

我也有类似的问题,请注意,除非我们要使用调试模式,否则不需要将JAVA_设置为HOME。 Windows7中的tomcat可以处理
JAVA_HOME=c:\Program Files\Java\jdk1.6.0_32;
JRE_HOME = C:\Program Files\Java\jdk1.8.0_77\jre
SET JRE_HOME="C:\Program Files\Java\jre1.8.0_121"
SET JRE_HOME=C:\Program Files\Java\jre1.8.0_121
Files\Java\jre1.8.0_121"" was unexpected at this time.