在cygwin中将多个jar文件设置为classpath

我在c:\cygwin\programs\x.java ,它使用y.jarz.jar ,它们也在文件夹c:\cygwin\programs

在Windows中:

 c:cygwin\programs>javac -classpath c:\cygwin\programs\y.jar;c:\cygwin\programs\z.jar x.java 

没有错误。

在cygwin

(1)

 $javac -classpath c\:/cygwin/programs/y.jar;c\:/cygwin/programs/z.jar x.java Errors: $'PK\003\004': Command not found. 

(2)

 $javac -classpath c:\cygwin\programs\y.jar;c:\cygwin\programs\z.jar x.java Errors: -bash command Command not found. 

(3)

 $javac -classpath 'c:/cygwin/programs/y.jar;c:/cygwin/programs/z.jar' x.java No error. 

为什么在(1),(2)的情况下给出错误…

你正在搞乱逃脱角色背斜线\ 。 在基于Unix的环境中,最好使用/作为路径分隔符。 如果由于某种原因想要使用反斜杠,请使用额外的反斜杠,即\\在路径中将其视为文字。

由于上述原因,第一个两个语句不会导致正确的路径,从而导致失败。

Cygwin对待; 字符作为启动新命令行,因此在(1)中它尝试执行单独的命令

 $ javac -classpath c\:/cygwin/programs/y.jar $ c\:/cygwin/programs/z.jar x.java 

错误消息来自Cygwin尝试直接执行jar文件作为脚本。

您可以使用''在(3)中引用整个参数,或者转义分号:

 $ javac -classpath c\:/cygwin/programs/y.jar\;c\:/cygwin/programs/z.jar x.java