Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
即使指定了JAVA_HOME,也无法识别javac_Java - Fatal编程技术网

即使指定了JAVA_HOME,也无法识别javac

即使指定了JAVA_HOME,也无法识别javac,java,Java,当我在cmd中键入javac时,它不会被识别,尽管我确实安装了JDK1.7,并指定了如下JAVA_HOME c://Programfiles/Java/jdk-1.6/bin//带和不带bin,带和不带双斜杠 没有结果 我也试过了 ;c://Programfiles/Java/jdk-1.6/bin//带和不带bin,带和不带双斜杠 没有结果 还有其他可能的解决办法吗 PS系统变量框被禁用。因此,我只能在您的方法中添加用户变量几个问题: 环境变量JAVA_HOME与操作系统用于查找可执行文件

当我在cmd中键入
javac
时,它不会被识别,尽管我确实安装了JDK1.7,并指定了如下JAVA_HOME

c://Programfiles/Java/jdk-1.6/bin//带和不带bin,带和不带双斜杠

没有结果


我也试过了

;c://Programfiles/Java/jdk-1.6/bin//带和不带bin,带和不带双斜杠

没有结果


还有其他可能的解决办法吗


PS系统变量框被禁用。因此,我只能在您的方法中添加
用户变量

几个问题:

  • 环境变量JAVA_HOME与操作系统用于查找可执行文件的机制无关。为此,将考虑PATH变量。JAVA_HOME变量有时被其他寻找JAVA的应用程序使用

  • 如果使用变量JAVA_HOME,则应将其设置为bin目录的父目录

  • Windows使用反斜杠分隔目录,而不是正斜杠。(编辑:至少,Windows7允许正斜杠,但我建议仍然使用反斜杠。)此外,“C:”和根目录之间只有一个分隔符

  • 通常包含已安装程序的目录是“程序文件”,而不是“程序文件”

  • 总而言之,您应该执行以下操作:

    set JAVA_HOME=jdk_path
    set PATH=%JAVA_HOME%/bin;%PATH%
    
  • 使用JAVA安装目录作为值创建环境变量JAVA_HOME,例如“C:\Program Files\JAVA\jdk-1.6”。此目录必须包含bin目录,而bin目录又包含可执行文件(如java.exe)

  • 通过在环境变量路径的末尾添加“;%JAVA\u HOME%\bin”来扩展环境变量路径

  • 这两种编辑都应在系统变量中进行。现在,您只需打开一个命令提示符,并使用“java版本”检查此设置。这应该行得通


    编辑

    如果在环境设置中只能编辑用户变量,则以下操作将起作用:

  • 如上所述,将变量JAVA_HOME添加到用户变量中
  • 向内容为“%PATH%”;%JAVA_HOME%\bin的用户变量添加(新)变量路径
  • 如果您现在打开一个命令提示符并通过简单地键入“path”来检查path变量,您将看到path中的变量已正确展开。现在用“java-version”进行检查。

    两步流程:

  • 设置JAVA_HOME=jdk_路径;jdk_path\bin和
  • 设置路径=%JAVA\u HOME%
  • 然后,运行以下命令进行确认:

    java版本


    在命令提示符下识别或不识别哪些命令与JAVA_HOME环境变量无关,而是与PATH变量有关

    您可以使用在windows命令行中检查路径

    C:\>  path
    

    除此之外,请确保指向正确的jdk1.7 bin目录。默认情况下,调用此
    …Java/jdk-1.6/bin

    是一个坏主意,为了让shell找到,所有程序都必须位于系统“path”环境变量内,该变量与Java\u HOME没有任何关系

    如果要同时配置这两个选项,可以使用以下选项:

    set JAVA_HOME=jdk_path
    set PATH=%JAVA_HOME%/bin;%PATH%
    

    JAVA_HOME
    应设置为
    /bin
    上方的目录。你的路径应该有
    %JAVA\u HOME%/bin
    。我也试过了。没有结果你可以使用黑客的方法,那就是获取完整的javac文件路径,像这样
    “C:\my programs\java\jdk\u bin167etc\javac.exe”myheyworld.java
    你给用户变量或系统变量添加了路径吗?我的意思是,直到你有时间解决类路径问题。贝克。我知道这些问题真的需要解决,当我看到这一点的时候,heheI正要+1:Windows使用反斜杠来分隔目录,而不是正斜杠。前半部分是正确的,后半部分不是。你能告诉我,Windows(我说的是Windows,而不是Java,因为问题是指命令提示符)在哪里使用正向斜杠吗?Windows 7至少允许使用正向斜杠(刚刚验证);微软确实在更新版本中改进了东西,这一事实也欺骗了我。历史上是不可能使用它们的,我从来没有检查过。我还认为,使用反斜杠更好。当然,我必须修改我的答案。谢谢,真的!那就把我涂成傻瓜吧,我可以发誓我不能在Windows 2000中这么做。java home不应该指向bin目录。它应该指向java目录,比bin高一级;这可能会产生其他问题。如果在单个会话/cmd提示符中执行此操作,则只会影响该会话。显然(或者可能不是很明显),您的路径还将包含您需要的任何其他内容。但是java路径必须在路径上才能正常工作。我发现将JAVA_HOME设置为bin和path以使JAVA和javac命令工作是必要的,如果您有较旧的代码(在不同版本下编译),那么通过设置JAVA_HOME可以更容易地切换JAVA版本。