这似乎不是通常的CLASSPATH问题,但可能是cygwin特有的。 以下说明了这个问题。
import net.jradius.packet.attribute.AttributeFactory;
public class Test{
static int x = 100;
}
出现编译时出现以下错误。
$ javac Test.java
Test.java:1: error: package net.jradius.packet.attribute does not exist
import net.jradius.packet.attribute.AttributeFactory;
^
1 error
文件jradius-core-1.1.4.jar位于CLASSPATH中。
在Windows中使用命令行时,它可以正常工作。这是类路径。
set CLASSPATH=c:\Temp\jradius-core-1.1.4.jar
使用cygwin时会产生错误。这是类路径。
export CLASSPATH=/cygdrive/c/Temp/jradius-core-1.1.4.jar
该位置通过cygwin有效,如下所示,它被识别。
ls $CLASSPATH
/cygdrive/c/Temp/jradius-core-1.1.4.jar
两种方案都使用相同的JDK。 知道为什么它可能会失败通过cygwin ???
答案 0 :(得分:1)
您正在使用为Windows构建的JDK,因此环境适用于Windows。
据说,你应该为javac提供windows风格的路径。
你正在寻找cygpath 。
尝试:
javac Test.java -cp `cygpath.exe -w /cygdrive/c/Temp/jradius-core-1.1.4.jar`
cygpath -w 表示以windows风格打印。
或者只是将 jar 文件放在java文件的相同的目录中,并放在cygwin中:
javac Test.java -cp jradius-core-1.1.4.jar
请参阅this
答案 1 :(得分:0)
将JAR文件添加到目录中,并将类路径更改为包含“*”,这似乎已经起作用。