我有一个简单的单文件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
。
我的测试盒出了什么问题?
答案 0 :(得分:6)
类路径分隔符在Linux(和Unix)上与在Windows上不同。它在Windows上为;
,但在Linux(和Unix)上为:
。
在Linux上试试这个:
javac -cp ".:dependency.jar" File.java
java -cp ".:dependency.jar" File