从命令行执行Java

7

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

  • Hello.java
  • mail.jar

Hello.java从mail.jar中导入,因此我需要告诉Hello.java查找mail.jar。

从Windows命令行和Unix命令行,我该如何编译和运行它?

3个回答

14

编译:

javac -cp .;mail.jar Hello.java

对于Windows系统,请使用分号;;对于*nix系统,请使用冒号:

然后运行:

java -cp .;mail.jar Hello

再次提醒,在Windows中使用;,在*nix中使用:

-cp 告诉 javacjava 使用什么classpath,由于您的文件位于执行命令的本地目录中,可以将.用于 Hello 部分,将 jar 的名称用于 jar 内部路径。维基百科有一个不错的类路径文章

请注意,如果您经常这样做,您可能希望设置您的CLASSPATH环境变量,而不是不断使用-cp标志。 javajavac均使用CLASSPATH变量。

对于我的开发机器,我实际上将.包含在我的CLASSPATH变量中,以方便使用。这不是我会在生产或构建/测试盒上做的事情,但它非常适合开发目的。您需要在其中包含您通常的 jars。


这不会让Java加载JAR文件。 - Jesper
@Jesper:谢谢,我想当你评论时我正在修复它。 :-) 我有点忘记了那个jar文件。 - T.J. Crowder

2
假设Hello.java没有包声明,在Windows上:
javac -cp mail.jar Hello.java
java -cp mail.jar;. Hello

在Unix平台上唯一的区别是,你需要使用分号代替冒号来分隔类路径的元素:
java -cp mail.jar:. Hello

-1

跟随这个教程,你应该能够很快完成:

Java编译

你的类与classpath在同一个文件夹下,所以也不应该有任何问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接