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

时间:2012-11-15 00:20:43

标签: java cygwin classpath

我在x.java中有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)...

的情况下给出错误

2 个答案:

答案 0 :(得分:2)

你正在搞乱转义字符反斜杠\。在基于Unix的环境中,最好使用/作为路径分隔符。如果由于某种原因想要使用反斜杠,请使用附加反斜杠,即\\将其视为路径中的文字。

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

答案 1 :(得分:0)

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