我的环境是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'。
谁能告诉我详情?
答案 0 :(得分:3)
嗯,大概是你的代码基本上不依赖于类路径中的任何东西。如果只使用JDK中的类,那就绝对没问题了。
请注意,类路径仅用于查找类文件 - 而不是源代码。这解释了当源路径不在类路径上时缺少失败,然后当您尝试使用类路径找到Tj.java
时失败。
答案 1 :(得分:0)
首先,如果您使用 javac -cp进行编译。 myClass.java ,你可以省略-cp。完全,因为它是默认的类路径。 其次,当您需要指定对标准JDK库中未包含的其他JAR文件的引用时,应使用 -cp ,例如jdbc连接器。如果您的课程不需要任何其他库,那么您告诉 javac 查看哪个目录并不重要。