My environment is Windows 7 and JDK 1.7.
I have not set the CLASSPATH environment variable; echo %CLASSPATH% outputs nothing.
Java compiler: C:\Program Files\Java\jdk1.7.0_10\bin
Java source: is in D:\tmpmulu\Tj.java
I run the command like below:
C:\>"C:\Program Files\Java\jdk1.7.0_10\bin\javac.exe" -cp d:\tmpmulu\ d:\tmpmulu\Tj.java
It works. The command set the classpath and compiled the file.
But when I change the command to use . instead of d:\tmpmulu\ as my classpath:
C:\>"C:\Program Files\Java\jdk1.7.0_10\bin\javac.exe" -cp . d:\tmpmulu\Tj.java
It’s also OK.
That confused me. The . means the current path, it should be c:\. How did it run successfully?
Another question is command like below:
C:\>"C:\Program Files\Java\jdk1.7.0_10\bin\javac.exe" -cp d:\tmpmulu\ Tj.java
As my thinking, the classpath is set to d:\tmpmulu\, it should find the Tj.java file. But the result is ‘file not found Tj.java’.
Can anyone tell me details?
Well, presumably your code doesn’t rely on having anything in the classpath, basically. If it only uses classes from the JDK, that’s absolutely fine.
Note that the classpath is only used to find class files – not source code. That explains both the lack of failure when your source path isn’t on the classpath, and then failure when you try to use the classpath to locate
Tj.java.