I have a folder on my desktop titled "Stuff" and in that folder I have the following:
And Hello.java imports from mail.jar, so I need to tell Hello.java to look for mail.jar.
From a Windows command line and from a unix command line, how can I compile this and run this?
Compile:
javac -cp .;mail.jar Hello.java
where ;
is for Windows; use :
for *nix.
and run:
java -cp .;mail.jar Hello
where again, use ;
for Windows and :
for *nix.
-cp
tells both javac
and java
what classpath to use, and as your files are in the local directory where you're executing the command, you can use .
for the Hello part and the name of the jar for the paths inside the jar. Wikipedia has a decent article on classpaths.
Mind you, if you're going to be doing this on a regular basis, you may want to set your CLASSPATH
environment variable rather than constantly using the -cp
flag. Both java
and javac
use the CLASSPATH
variable.
For my own development machine, I actually include .
in my CLASSPATH
variable, for convenience. It's not something I would do on a production or build/test box, but it's very handy for development purposes. You'd want to have your usual jars in it as well.
Assuming Hello.java does not contain a package declaration, on Windows:
javac -cp mail.jar Hello.java
java -cp mail.jar;. Hello
The only difference on Unix platforms is that you separate the elements of the classpath with a scolon instead of a semicolon:
java -cp mail.jar:. Hello
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