在执行'play run'时出现错误
"无法执行Java可执行文件,请确保JAVA_HOME
环境变量设置正确(Java可执行文件应该位于JAVA_HOME/bin/Java)。"
但是我可以确认,JAVA_HOME
设置正确,因为我能够从控制台运行'java'命令,即DOS提示符。
设置用户变量JAVA_HOME to C: program ~1Javajdk1.7.0_04
和
扩展系统变量Path with %JAVA_HOME%bin;
works for me
我在Windows 7上遇到了同样的问题。echo %JAVA_HOME%
返回C:ProgrammesJavajdk1.7.0
,这似乎是正确的。然而,在Windows 7中,即使路径在资源管理器中看起来像这样,cmd
使用的"真正"路径是C:Program FilesJavajdk1.7.0
。
我更新了JAVA_HOME
并重新启动了cmd
—否则,终端不会刷新它的变量—
能够从命令行运行java并不表示您已经设置了JAVA_HOME变量。你知道怎么做吗?或者你知道如何检查这个变量是否存在吗?
如果你使用的是Windows,这里有一个快速的方法:右键单击我的电脑(或Windows 7中的电脑),然后单击选项卡高级,然后单击环境变量。在系统变量中检查是否有带有变量JAVA_HOME的条目。如果没有创建一个(通过单击new),在变量名中给出JAVA_HOME,并在变量值中给出jdk的路径。假设你的jdk安装在以下路径:c:jdk6,那么这应该是你的变量值。点击Ok,再次点击Ok,然后再次运行您的应用程序!你做过echo %JAVA_HOME%
了吗?
若干问题:
-
JAVA_HOME
(JVM使用的变量)与PATH
(操作系统使用的变量,用于查找可执行文件的目录)不同。执行java.exe
只是显示Java的bin目录在PATH中,而不是JAVA_HOME指向它应该(甚至存在)的位置 -
另外,Windows通常不使用
PATH
变量,而是对java进行特殊处理,并将其位置存储在寄存器中(执行echo %PATH%
检查这一点)。
总结:你不能假设JAVA_HOME
是设置的;直接检查并设置(控制面板->系统->高级)
确保在JAVA-Home中使用DOS-Path。这意味着没有从Win-7 C:程序在真实的C:Program Files和没有空白的路径。
C:>dir /x Prog*
09.08.2011 13:55 <DIR> PROGRA~1 Program Files
21.08.2011 20:25 <DIR> PROGRA~2 Program Files (x86)
这是一个安全的解决方案。
echo %JAVA_HOME%确实总是一个好主意。
如果您有64位的Windows版本,请确保安装了32位和64位版本的Java(因此在Program Files和Program Files (x86)中必须有一个Java目录)。
我将jdk
从1.6.0_14
更新为1.7.0_10
,将jre6
更新为jre7
,在XP上也有同样的问题。然后我删除了JAVA_HOME
并再次添加它,它工作了。我还添加了JRE_HOME
作为系统变量
JAVA_HOME --> C:Program FilesJavajdk1.7.0_10
JRE_HOME --> C:Program FilesJavajre7
这里可能有点过时了,但在我的情况下,我必须编辑play.bat
并设置JAVA_HOME路径:
@echo off
set "JAVA_HOME=JAVA_HOME=C:Program Files (x86)Javajre1.8"
"%~dp0pythonpython.exe" "%~dp0play" %*
希望能有所帮助。