Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set folder for classpath [duplicate]

From the command line, how do I set the Java CLASSPATH option to point to one or more directories containing multiple jar file? Are there wildcards for recursive directory and sub-directory support?

(My JAR files are sorted in several sub-directories.)

like image 923
Sam Avatar asked Jan 29 '12 12:01

Sam


2 Answers

If you are using Java 6 or higher you can use wildcards of this form:

java -classpath ".;c:\mylibs\*;c:\extlibs\*" MyApp 

If you would like to add all subdirectories: lib\a\, lib\b\, lib\c\, there is no mechanism for this in except:

java -classpath ".;c:\lib\a\*;c:\lib\b\*;c:\lib\c\*" MyApp 

There is nothing like lib\*\* or lib\** wildcard for the kind of job you want to be done.

like image 70
msi Avatar answered Sep 21 '22 04:09

msi


Use the command as

java -classpath ".;C:\MyLibs\a\*;D:\MyLibs\b\*" <your-class-name> 

The above command will set the mentioned paths to classpath only once for executing the class named TestClass.

If you want to execute more then one classes, then you can follow this

set classpath=".;C:\MyLibs\a\*;D:\MyLibs\b\*" 

After this you can execute as many classes as you want just by simply typing

java <your-class-name> 

The above command will work till you close the command prompt. But after closing the command prompt, if you will reopen the command prompt and try to execute some classes, then you have to again set the classpath with the help of any of the above two mentioned methods.(First method for executing one class and second one for executing more classes)

If you want to set the classpth only once so that it could work for everytime, then do as follows

1. Right click on "My Computer" icon 2. Go to the "properties" 3. Go to the "Advanced System Settings" or "Advance Settings" 4. Go to the "Environment Variable" 5. Create a new variable at the user variable by giving the information as below     a.  Variable Name-     classpath     b.  Variable Value-    .;C:\program files\jdk 1.6.0\bin;C:\MyLibs\a\';C:\MyLibs\b\* 6.Apply this and you are done. 

Remember this will work every time. You don't need to explicitly set the classpath again and again.

NOTE: If you want to add some other libs after some day, then don't forget to add a semi-colon at the end of the "variable-value" of the "Environment Variable" and then type the path of your new libs after the semi-colon. Because semi-colon separates the paths of different directories.

Hope this will help you.

like image 32
Chandra Sekhar Avatar answered Sep 22 '22 04:09

Chandra Sekhar