我有一个奇怪的问题。安装java jdk 6u25后,我在命令提示符下键入java测试了安装。一切正常,控制台按预期显示使用选项。这是大约3个星期前 - 我最近在我的机器上重新安装了Windows 7-现在我想开始使用play框架并按照教程进行操作。我使用play new
获得了一个新应用,但因此无法使用play run
:
玩! 1.2.3,http://www.playframework.org
Ctrl + C停止
无法执行java可执行文件,请确保正确设置了JAVA_HOME环境变量。
有趣的是,在控制台中输入java仍会显示使用选项,并且eclipse或netbeans都没有抱怨丢失的jdk。然而,我检查了我的环境变量,并惊讶地发现:
根本没有对java的引用。
说真的,我不知道控制台,eclipse和netbeans是如何找到我的java的。作为第一个对策,我再次重新安装了java,希望安装程序可以正确设置路径。它没有。现在我想建议你:我应该创建JAVA_HOME变量吗?如果我这样做,jdk的更多版本是否会覆盖变量以指向新版本,还是每次都必须手动更改变量? eclipse和netbeans怎么样?我猜他们已经下载了他们的“自己的”jdk。如果我想在我的机器上更新java,它也会更新它们的版本吗?
更新: 我手动设置环境变量并重新启动电脑。现在一切正常,但我想知道什么是符号链接。您能否在评论中给我一个链接或简要解释一下?
答案 0 :(得分:3)
Eclipse和netbeans使用不同的方式来查找java安装,而不是像play,ant,maven,gradle等命令行工具。
IDE可能会搜索您的注册表,猜测默认位置,甚至可以将JRE预打包与安装一起使用。
命令行工具通常依赖于JAVA_HOME变量。你必须手动设置。
答案 1 :(得分:3)
我应该只创建JAVA_HOME变量吗?
有几种工具使用该环境变量,因此我建议您创建它。
如果我这样做,jdk的更多版本是否会覆盖变量以指向新版本,还是每次都必须手动更改变量?
如果您将新的Java版本安装到同一文件夹中(或者如果您创建了符号链接),则为no。
eclipse和netbeans怎么样?我猜他们已经下载了他们的“自己的”jdk。如果我想在我的机器上更新java,它也会更新它们的版本吗?
这取决于JDK是否预先捆绑以及配置是如何完成的。我不能代表Netbeans,但在Eclipse中,您可以将其添加到eclipse.ini
:
-vm
C:/Java/jre/bin
请注意,这是bin文件夹的示例路径。如果您不在那里添加版本或使用符号链接(见上文),那么在安装新版本时您不必更新路径。
答案 2 :(得分:0)
你可能在C:\ windows或其他公共目录中有一个(较旧的?)java.exe。 确保您在命令行上获得的java是您认为的那个:
java -version