我如何设置我的Cygwin PATH来findjavac?

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

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

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

 javac command not found 

我在做这样的PATHvariables时做错了什么? 我还需要做点什么吗? 我是Java新手,不太熟悉cygwin。

当你用双引号将它写出来时,你不需要用\

 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/ 

Java二进制文件可能位于“程序文件”或“程序文件(x86)”之下:那些空格可能会影响行为。

为了正确设置envvariables ,我build议在开始之前收集一些信息:

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

Cygwinconfiguration:

在C:\ cygwin \ home \下,然后打开.bash_profile并添加以下两行(为了与实际的JDKpath相匹配,

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

现在从Cygwin发布

javac -version

检查configuration是否成功。

如果您仍然发现正在使用默认错误的Java版本(1.7)而不是Java主目录,则只需更改PATHvariables的顺序即可在您的Windows目录之前设置JAVA_HOME \ bin PATHvariables,保存并重启cygwin。 testing一下,确保一切正常。 它不应该有任何不利影响,因为你想要自己的Java版本覆盖Windows自带的默认值。 祝你好运!

为了使@johanvdw更有用的评论:

如果你想确保你的javac文件path始终知道cygwin何时开始 ,你可以编辑你的.bash_profile文件。 在这个例子中,你可以在文件的某处添加export PATH=$PATH:"/cygdrive/C/Program Files/Java/jdk1.6.0_23/bin/"

当Cygwin启动时,它将在PATH中search目录,并在这个目录中运行可执行文件。