java命令行编译

时间:2014-07-01 20:02:29

标签: java classpath

我有一个简单的单文件java程序,它依赖于一个静态jar。 java代码和jar驻留在同一目录中。对于这种一次性解决方案,我不想引入蚂蚁或专家的重量,只是想直接编译它。

在我的开发框中,以下内容编译并运行我的代码:

javac -cp ".;dependency.jar" File.java
java -cp ".;dependency.jar" File

但是,在我的测试框中,java命令失败,我得到以下输出:

Error: Could not find or load main class File

如果我将类路径arg更改为-cp ".",我会得到以下输出:

Exception in thread "main" java.lang.ClassNotFoundException: dependency

我的开发框是64位Windows / Cygwin和java版本1.7.0_55。我的测试框是64位Linux和java版本1.7.0_45

我的测试盒出了什么问题?

1 个答案:

答案 0 :(得分:6)

类路径分隔符在Linux(和Unix)上与在Windows上不同。它在Windows上为;,但在Linux(和Unix)上为:

在Linux上试试这个:

javac -cp ".:dependency.jar" File.java
java -cp ".:dependency.jar" File