here is the directory structure: C:\ dirA\dirB\dirC\A.java when i try to compile by using the command 1:-c:\javac -cp dirA\dirB\dirC\A.java it displays the error message javac: no source files but when i use this command 2:-c:\java -cp \dirA \dirA\dirB\dirC\A.java it compiles successfully. what is the difference between 1st command & 2nd command.
if I am inside dirA i.e c:\dirA> what should I give as classpath variable to complie & execute A.java. what is relative classpath i.e what is meaning of -cp dirB;dirB\dirC? if i execute the command c:\dirA> javac -cp dirB;dirB\dirC\A.java.The error message is "javac: no source files is found ". why did I get this error message when A.java file is inside dirC.
The above both statements do not execute on my machine (jdk 1.4) and the error is "invalid flag: -cp".
But instead of -cp if I -classpath flag is used then the error as stated by you no source files is thrown.
Here is the explanation: In your first case : the classpath variable was set to dirA\dirB\dirC\A.java and you did not specify any source files after that to execute. Afte the classpath is set you need to specify the source files. Try this it will work
The first argument is for classpath and the second argument is the source file which when compiled using classpath dirA\dirB\dirC\A.java
Comming to the second case which works : This is because now the classpath points to \dirA and the next argument is the source file that needs to be executed. The space between \dirA and \dirA\dirB\dirC\A.java acts as delimiter for the input arguments for the javac command.
If your in the same directory as the source files; you need not give classpath, just execute.
My feeling is that you have been confused with classpath and sourcepath.
check the javac help.
You can't wake a person who is <b><i>pretending</i></b> to be asleep.<br />Like what <b>"it"</b> does not like - <i> Gurdjieff </i>