• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

classpath.

 
Ranch Hand
Posts: 31
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
Ranch Hand
Posts: 239
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

c:\javac -cp dirA\dirB\dirC\A.java

and

2:-c:\java -cp \dirA \dirA\dirB\dirC\A.java



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

c:\javac -cp dirA\dirB\dirC\A.java dirA\dirB\dirC\A.java

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.
 
Don't get me started about those stupid light bulbs.
reply
    Bookmark Topic Watch Topic
  • New Topic