Execute Java from command line

2019-06-17 10:11发布

I have a folder on my desktop titled "Stuff" and in that folder I have the following:

  • Hello.java
  • mail.jar

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?

3条回答
爷的心禁止访问
2楼-- · 2019-06-17 10:37

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.

查看更多
我欲成王,谁敢阻挡
3楼-- · 2019-06-17 10:50

Follow this tutorial and you should be able to do it in no time:

Java Compilation

You also shouldn't have any problems with the classpath because your classes are in the same folder

查看更多
forever°为你锁心
4楼-- · 2019-06-17 10:59

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
查看更多
登录 后发表回答