从命令行执行Java

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

  • Hello.java
  • 的mail.jar

而Hello.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告诉javacjava要使用哪个类路径 ,并且当你的文件在你执行命令的本地目录中时,你可以使用. 对于Hello部分和jar内部路径的jar名称。 维基百科在类路径上有一个体面的文章 。

请注意,如果要定期执行此操作,则可能需要设置CLASSPATH环境变量,而不是始终使用-cp标志。 javajavac使用CLASSPATH变量。

对于我自己的开发机器,我其实包括了. 在我的CLASSPATH变量,为了方便。 这不是我在生产或构建/测试框中所做的事情,但对于开发目的来说非常方便。 你也可以在里面放一些普通的罐子。

假设Hello.java不包含包声明,则在Windows上:

 javac -cp mail.jar Hello.java java -cp mail.jar;. Hello 

在Unix平台上唯一的区别是你用分号而不是分号分隔类路径的元素:

 java -cp mail.jar:. Hello 

按照这个教程,你应该能够立刻做到这一点:

Java编译

你也不应该有类路径的问题,因为你的类在同一个文件夹