我有一个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不是很熟悉。
答案 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变量,我建议在开始之前收集一些信息:
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
这样,如果您有多个 java
或 javac
,它将使用您首先提供的那个。