So, I can do this very well:
java mypackage.MyClass
if ./mypackage/MyClass.class
exists. I can also happily do this:
java -cp myjar.jar mypackage.MyClass
if the class file exists in the appropriate part of the jar. Easy stuff. But I can't for the life of me manage to do something like this:
java -cp utilities.jar mypackage.MyClass
where ./mypackage/MyClass.class
exists, and where ./utilities.jar
exists (not containing MyClass, of course).
Am I about to feel stupid?
To run a Runnable jar you can use java -jar fileName. jar or java -jar -classpath abc. jar fileName.
Setting Classpath from Command LineUse set CLASSPATH command initially, and then run Java application or tool in the same command line window. “ It will search the classes/resources in mentioned classpath locations. Classpath entries that are neither directories nor archives (.
Possibly :)
# On Unix java -cp utilities.jar:. mypackage.MyClass # On Windows java -cp utilities.jar;. mypackage.MyClass
Basically that's just including .
(the current directory) on the classpath as well as the jar file.
Try this if you're on Windows:
java -cp .;utilities.jar mypackage.MyClass
Or this if you're on Linux:
java -cp .:utilities.jar mypackage.MyClass
The current directory is not in the CLASSPATH
by default when you specify a value for -cp
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With