Cygwin导致Java“软件包不存在”错误

时间:2019-02-25 19:16:24

标签: java unix cygwin gnu

我正在通过makefile编译Java项目,我的协作者和我有不同的机器(他有Apple,我有Windows)。我正在使用Cygwin在我的机器上运行makefile,但是Java无法编译-即使它在协作者的机器上编译。适用于他的命令的格式为

  

javac -cp“ ./stem/java/lib/*:./stem/java/bin/Project.jar” -d   ./stem/java/bin ./stem/java/src/Project/A.java   ./stem/java/src/Project/B.java ./stem/java/src/Project/C.java   ./stem/java/src/Project/D.java ./stem/java/src/Project/E.java   ./stem/java/src/Project/F.java

在我的计算机上运行相同的命令会产生以下形式的错误

  

。\ stem \ java \ src \ Project \ A.java:460:错误:程序包GRB不存在

其中GRB是Gurobi外部.jar,它包含在/ lib /文件夹中,并且在代码中多次使用。

然后我尝试通过Windows命令行而不是Cygwin运行相同的命令,但是它给出了相同的错误消息

然后,我尝试按照错误消息中的说明将转义字符从“ /”更改为“ \”,但这也不起作用。在Windows cmd中,错误与以前相同,但在Cygwin中,错误是:

  

javac:找不到文件:.stemjavasrcProjectA.java

错误显然是Cygwin如何运行makefile的问题(外部jar的构建路径不会有问题,否则它对我的协作者将不起作用),但是可能是什么?

1 个答案:

答案 0 :(得分:0)

即使您在Cygwin下运行,您仍在调用Windows版本/ Java发行版。

Windows的Java版本要求您使用分号(;)字符作为类路径分隔符(与Linux和Mac上使用的冒号(:)相反)。因此,将makefile中的命令更改为

  

javac -cp“ ./stem/java/lib /*;./ stem / java / bin / Project.jar” ...