从命令行执行Java

从命令行执行Java,java,unix,command-line,Java,Unix,Command Line,我的桌面上有一个名为“Stuff”的文件夹,其中包含以下内容: Hello.java mail.jar java从mail.jar导入,所以我需要告诉Hello.java查找mail.jar 如何从Windows命令行和unix命令行编译并运行此命令?编译: javac -cp .;mail.jar Hello.java 其中用于Windows;对*nix使用: 并运行: java -cp .;mail.jar Hello 再次使用用于Windows,而用于*nix -cp告诉javac

我的桌面上有一个名为“Stuff”的文件夹,其中包含以下内容:

  • Hello.java
  • mail.jar
java从mail.jar导入,所以我需要告诉Hello.java查找mail.jar

如何从Windows命令行和unix命令行编译并运行此命令?

编译:

javac -cp .;mail.jar Hello.java
其中
用于Windows;对*nix使用

并运行:

java -cp .;mail.jar Hello
再次使用
用于Windows,而
用于*nix

-cp
告诉
javac
java
要使用什么classpath,并且由于您的文件位于执行命令的本地目录中,您可以对Hello部分使用
,对jar内的路径使用jar的名称。维基百科有一个独特的功能

请注意,如果要定期执行此操作,可能需要设置
CLASSPATH
环境变量,而不是经常使用
-cp
标志。
java
javac
都使用
CLASSPATH
变量


对于我自己的开发机器,为了方便起见,我实际上在
类路径
变量中包含了
。这不是我在生产或构建/测试箱上要做的事情,但对于开发目的来说,它非常方便。您也希望将常用的罐子放在其中。

按照本教程进行操作,您应该能够立即完成:


在Windows上,如果Hello.java不包含包声明,则类路径也不应该有任何问题,因为类位于同一文件夹中

javac -cp mail.jar Hello.java
java -cp mail.jar;. Hello
Unix平台上的唯一区别在于,类路径的元素之间用scolon而不是分号分隔:

java -cp mail.jar:. Hello

这不会使Java获取JAR文件。@Jesper:谢谢,我想我已经按照您的评论解决了这个问题。:-)我差点忘了那个罐子。