2

我的环境是 Windows 7 和 JDK 1.7。

没有设置CLASSPATH环境变量;echo %CLASSPATH%什么都不输出。

Java编译器:C:\Program Files\Java\jdk1.7.0_10\bin
Java源码:在D:\tmpmulu\Tj.java

我运行如下命令:

C:\>"C:\Program Files\Java\jdk1.7.0_10\bin\javac.exe" -cp d:\tmpmulu\ d:\tmpmulu\Tj.java

有用。该命令设置类路径并编译文件。

但是当我将命令更改为使用.而不是d:\tmpmulu\我的类路径时:

C:\>"C:\Program Files\Java\jdk1.7.0_10\bin\javac.exe" -cp . d:\tmpmulu\Tj.java

也没关系。

这让我很困惑。表示当前.路径,应该是c:\. 它是如何成功运行的?

另一个问题是如下命令:

C:\>"C:\Program Files\Java\jdk1.7.0_10\bin\javac.exe" -cp d:\tmpmulu\ Tj.java

正如我的想法,类路径设置为d:\tmpmulu\,它应该找到该Tj.java文件。但结果是“找不到文件 Tj.java”。

谁能告诉我细节?

4

2 回答 2

3

好吧,大概您的代码基本上不依赖于类路径中的任何内容。如果它只使用来自 JDK 的类,那绝对没问题。

请注意,类路径仅用于查找类文件,而不是源代码。这解释了当你的源路径不在类路径上时没有失败,然后当你尝试使用类路径来定位时失败Tj.java

于 2013-01-30T13:56:49.077 回答
0

首先,如果您使用javac -cp 进行编译。myClass.java,你可以省略它 -cp 。完全,因为它是默认的类路径。其次,当您需要指定对标准 JDK 库中未包含的其他 JAR 文件(例如 jdbc 连接器)的引用时,应使用-cp 。如果您的类不需要任何额外的库,那么您告诉javac查看哪个目录并不重要。

于 2013-01-30T14:11:29.937 回答