当我尝试使用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_home%
并得到以下结果
C:\Program Files\Java\jdk1.6.0_25\bin
我甚至尝试将JAVA_HOME
手动设置为系统变量列表,但这个问题仍然存在。
我能做些什么来解决它?
我使用的是Windows 7。
在设置一个名为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 )但发生了同样的错误。
答案 0 :(得分:28)
尝试在其他地方安装java - 在没有空格的目录中。再次设置JAVA_HOME
变量,然后重试。我记得Tomcat在Window XP上有一些问题,如果在启动包含空格时使用了任何变量。也许它与Windows 7类似。
我记得我必须更改处理Tomcat启动的Tomcat java类中的一些行。
@Edit: Luciano打败了我注意到它,但你也应该从bin
删除JAVA_HOME
@Edit:我还记得另一个修复(虽然我自己没有测试)是将JAVA_HOME
设置为速记版本,例如C:\Progra~1\Java\jdk1.6.0_25
答案 1 :(得分:19)
我认为你的JAVA_HOME应该指向
C:\Program Files\Java\jdk1.6.0_25
而不是
C:\Program Files\Java\jdk1.6.0_25\bin
即没有 bin 文件夹。
<强>更新强>
如果我像你一样用引号设置JAVA_HOME,那么我就会出现这个新错误。你用引号吗?如果是这样,请删除它们。
答案 2 :(得分:8)
在JAVA_HOME或JRE_HOME
的任何环境变量的末尾避免使用分号JAVA_HOME=C:\Program Files\Java\jdk1.6.0_25\bin
和
JRE_HOME=C:\Program Files\Java\jdk1.6.0_32\jre
应如图所示...
答案 3 :(得分:5)
我安装了Win 8 x86。我的Path
变量有条目C:\Program Files\Java\jdk1.6.0_31\bin
,我也有以下变量:
JAVA_HOME
:C:\Program Files\Java\jdk1.6.0_31;
JRE_HOME
:C:\Program Files\Java\jre6;
我的tomcat安装在C:\Program Files\Apache Software Foundation\apache-tomcat-7.0.41
但它仍然不适合我。
我尝试用Program Files
替换这些路径中的Progra~1
。我还尝试将JAVA移动到另一个文件夹,以便它的完整路径不包含任何空格。但没有任何效果。
最后对我有用的环境变量是:
Program Files
,即C:\Program Files\Java\jdk1.6.0_31\bin
JAVA_HOME
:C:\Program Files\Java\jdk1.6.0_31
JRE_HOME
所以我所做的就是删除了JRE_HOME
并在JAVA_HOME
结束时删除了分号。我认为分号应该不是问题,尽管我删除了它。我正在给这些设置,因为经过大量的谷歌搜索没有任何对我有用,突然这些似乎工作。您可以复制并查看它是否适合您。
这也适用于Win 7 x64,其中
C:\Program Files (x86)\Java\jdk1.7.0_17\bin
JAVA_HOME
设置为C:\Program Files (x86)\Java\jdk1.7.0_17
(不带分号)请告诉我为什么这样做有效,我知道删除JRE_HOME
是一个奇怪的解决方案,但是有没有猜到它有什么不同?
答案 4 :(得分:2)
从JAVA_HOME中删除'bin'。这解决了这个问题。
答案 5 :(得分:1)
设置环境变量([Windows Key] + [Pause Key],切换到“Advanced”,单击“Environment Variables”,在“System Variables”(下方列表)中,单击“New”(或“Edit”,如果你已经有了),
名: JAVA_HOME
值: C:\ PROGRA〜1 \爪哇\ JDK16〜1.0_3
表示C:\ Program Files \ Java \ jdk1.6.0_32
点击“确定”,
转到“系统变量”中的“路径”,
添加;在行尾(除非那里已有),
添加: C:\ PROGRA〜1 \爪哇\ JDK16〜1.0_3 \ bin中
点击“确定”全部。 - 重新启动计算机(建议)
答案 6 :(得分:0)
检查可比性,如果您使用的是Java 8,请使用tomcat 9,如果您使用的是Java 7,请使用tomcat7。还要将JAVA_HOME设置为C:\ Program Files \ Java \ jdk1.8.0_101,而不是斌
答案 7 :(得分:0)
作为Atlassian's Bamboo的参考,问题是因为我把命令包裹在语音标记中
所以
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.
答案 8 :(得分:0)
要运行Tomcat8,您需要在Env Variable中定义JRE_HOME。
即使正确设置,JAVA_HOME也无法做到。
JRE_HOME = C:\Program Files\Java\jdk1.8.0_77\jre
您应该选择SDK内部的JRE,即安装JDK(SDK)的JRE。 换句话说,你的JAVA_HOME + \ jre
当需要编译JDK来支持JSP时,要编译从* .jsp文件生成的Servlet。否则需要运行JRE。因此,在开发时需要JAVA_HOME,在部署时需要JRE_HOME。
答案 9 :(得分:0)
我删除了Tomcat并再次解压缩它并且有效。
答案 10 :(得分:0)
在没有\ bin的情况下为JAVA_HOME和JRE_HOME设置环境变量。 这对我有用
答案 11 :(得分:0)
有时候,semiColon会产生问题 请保证
JAVA_HOME=c:\Program Files\Java\jdk1.6.0_32
但不是
JAVA_HOME=c:\Program Files\Java\jdk1.6.0_32;
相同的问题我得到但没有解决
答案 12 :(得分:0)
有两种类型的环境变量 第一个用户变量如果您在此路径中它将仅适用于该特定用户。 第二个是System变量,如果你设置路径,它被所有类型的用户使用.. 在我的系统中,我在系统变量中设置了JAVA_HOME,它没有工作,然后我设置了路径 用户变量它正在工作.....所以尝试两种类型的环境变量......
答案 13 :(得分:0)
还要确保您具有适用于CPU类型的正确版本的Tomcat。我在32位O / S上安装了一个64位的tomcat,但它却给了我JAVA_HOME异常,但事实并非如此。
答案 14 :(得分:0)
我设置了
变量名:JAVA_HOME 值:C:\ Program Files \ Java \ jdk1.6.0_32
我在没有分号的系统/环境变量中设置这些属性,tomcat正在我的系统上运行。
它真的有用。
答案 15 :(得分:-1)
First Run the tomcat directly through the tomcat /bin folder with
startup.bat if running sucessful the set the variable as below sample
JAVA_HOME值:C:\ Program Files \ Java \ jdk1.6.0_32;
路径:C:\ Program Files \ Java \ jdk1.6.0_32 \ bin;
CATALINA_HOME = C:\ Program Files \ Apache Software Foundation \ Apache Tomcat 7.0.27;
PATH =%PATH%;%JAVA_HOME%\ bin中;%CATALINA_HOME%\ bin中;
如果需要 CLASS_PATH:%CATALINA_HOME%\ lib;%JAVA_HOME%\ lib;
答案 16 :(得分:-1)
答案 17 :(得分:-2)
我有类似的问题,请注意我们不需要设置JAVA_HOME,除非我们要使用调试模式。 Windows 7中的tomcat可以处理环境变量中的空格 问题是因为&#34; bin&#34;在路上。 将JRE_HOME设置为C:\ Program Files(x86)\ Java \ jre1.8.0_65解决了我的问题并且tomcat启动并运行没有任何问题