无法使用cygwin编译java文件

无法使用cygwin编译java文件,java,cygwin,classpath,Java,Cygwin,Classpath,我正在尝试使用cygwin shell编译一些文件 我试图编译的java文件是C:\Users\Programs\x.java 用于windows命令提示符 C:\Users\Programs>javacx.java 没有错误 给Cygwin shell $javac/cygdrive/c/Users/Programs/x.java 错误: javac:未找到文件:\cygdrive\c\Users\Programs\x.java 为什么我会在cygwin shell中得到一个错误,尽管它在wi

我正在尝试使用cygwin shell编译一些文件

我试图编译的java文件是C:\Users\Programs\x.java

用于windows命令提示符

C:\Users\Programs>javacx.java

没有错误

给Cygwin shell

$javac/cygdrive/c/Users/Programs/x.java

错误:

javac:未找到文件:\cygdrive\c\Users\Programs\x.java

为什么我会在cygwin shell中得到一个错误,尽管它在windows命令提示符下运行。它对/cygdrive没有任何线索。始终记住这一点,并传递有效的Windows路径

因此,请使用javac'c:/Users/Programs/x.java'或javac\:/Users/Programs/x.java 此外,与大多数Unix shell一样,如果需要使用它,则必须转义它。

javac是Windows应用程序。它对/cygdrive没有任何线索。始终记住这一点,并传递有效的Windows路径

因此,请使用javac'c:/Users/Programs/x.java'或javac\:/Users/Programs/x.java
此外,与大多数Unix shell一样,如果需要使用它,则必须对其进行转义。

我认为问题在于cygdrive是一个伪设备,在Cygwin特定的库中实现。如果您正在运行的可执行文件没有链接到该库,并且Oracle Java可执行文件没有!它无法正确解析/cygdrive路径组件。

我认为问题在于cygdrive是在Cygwin特定库中实现的伪设备。如果您正在运行的可执行文件没有链接到该库,并且Oracle Java可执行文件没有!它无法正确解析/cygdrive路径组件。

您可以通过Cygwin访问/cygdrive/c/Users/Programs/文件夹吗?我猜我可以,当我在/cygdrive/c/Users/Programs x.java中显示选项卡时,您可以通过Cygwin访问/cygdrive/c/Users/Programs/文件夹吗?我猜我可以,当我执行/cygdrive/c/Users/Programs x.java中的一个选项卡时,会显示甚至是使用bash单引号保护的常规Windows反斜杠的javac'c:\Users\Programs\x.java'。在这个javac\:/Users/Programs/x.java中,为什么“\”used@vjk你必须不加引号地逃避:这就是``的目的,这就是为什么你不能直接使用它,而只能在单引号。@Alex Gitelman:您不需要转义:因为bash在将其用作文件名的一部分时,不会将其视为特殊字符。只是有些程序,比如scp,rsync,tar以前把这些东西当作主机名处理,但是bash没有。或者甚至javac'c:\Users\Programs\x.java'使用常规的Windows反斜杠,受bash单引号保护。在这个javac\:/Users/Programs/x.java中,`\``为什么是used@vjk你必须不加引号地逃避:这就是``的目的,这就是为什么你不能直接使用它,而只能在单字中使用它引号。@Alex Gitelman:您不需要转义:因为bash在将其用作文件名的一部分时,不会将其视为特殊字符。只是有些程序,比如scp、rsync、tar,以前把这些东西当作主机名来处理,而bash没有。