如何设置我的Cygwin PATH来查找javac?

时间:2011-02-07 07:09:58

标签: java path cygwin javac

我有一个Windows 7系统,我已经安装了最新的Java编译器。我也有最新的Cygwin。我想使用Cygwin的shell中的Java编译器。我在Cygwin中编辑了PATH变量,如下所示:

export PATH=$PATH:"/cygdrive/C/Program\ Files/Java/jdk1.6.0_23/bin/"

我可以在上面的目录中看到javac二进制文件,但是当我尝试编译我的* .java文件时,我得到:

javac command not found

我在设置PATH变量时做错了吗?我还需要做别的吗?我是Java的新手,对cygwin不是很熟悉。

5 个答案:

答案 0 :(得分:65)

当您使用双引号编写它时,您不需要使用\

转义空格
export PATH=$PATH:"/cygdrive/C/Program Files/Java/jdk1.6.0_23/bin/"

当然这也有效:

export PATH=$PATH:/cygdrive/C/Program\ Files/Java/jdk1.6.0_23/bin/

答案 1 :(得分:6)

Java二进制文件可能位于“Program Files”或“Program Files(x86)”下:这些空格可能会影响行为。

为了正确设置env变量,我建议在开始之前收集一些信息:

  • 打开DOS shell(在“运行”框中键入cmd)转到C:\
  • 输入“dir / x”并记下“Program Files *”文件夹的DOS名称(带〜)

Cygwin配置:

在C:\ cygwin \ home \下,然后打开.bash_profile并添加以下两行(方便自定义以匹配您的实际JDK路径)

export JAVA_HOME="/cygdrive/c/PROGRA~1/Java/jdk1.8.0_65"
export PATH="$JAVA_HOME/bin:$PATH"

现在从Cygwin发布

javac -version

检查配置是否成功。

答案 2 :(得分:3)

更加突出@johanvdw的有用评论:

如果您想确保在cygwin启动时始终知道您的javac文件路径,您可以编辑.bash_profile文件。在此示例中,您将在文件中的某处添加export PATH=$PATH:"/cygdrive/C/Program Files/Java/jdk1.6.0_23/bin/"

当Cygwin启动时,它会搜索PATH中的目录,然后搜索可运行的可执行文件。

答案 3 :(得分:2)

如果您仍然发现使用默认的错误Java版本(1.7)而不是Java主目录,那么您只需更改PATH变量的顺序以在Windows之前设置JAVA_HOME \ bin PATH变量中的目录,保存并重新启动cygwin。测试它以确保一切正常。它不应该有任何不利影响,因为您希望自己的Java版本覆盖Windows附带的默认值。祝你好运!

答案 4 :(得分:0)

尽管所有其他答案在技术上都是正确的,但我建议您将自定义路径添加到 PATH 的开头,而不是末尾。这样,它将是第一个寻找的地方,而不是最后一个:

添加到 ~/.bash_profile 的底部:

export PATH="/cygdrive/C/Program Files/Java/jdk1.6.0_23/bin/":$PATH

这样,如果您有多个 javajavac,它将使用您首先提供的那个。