java命令行编译

Jos*_*osh 2 java classpath

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

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

javac -cp ".;dependency.jar" File.java
java -cp ".;dependency.jar" File
Run Code Online (Sandbox Code Playgroud)

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

Error: Could not find or load main class File
Run Code Online (Sandbox Code Playgroud)

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

Exception in thread "main" java.lang.ClassNotFoundException: dependency
Run Code Online (Sandbox Code Playgroud)

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

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

rge*_*man 6

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

在Linux上试试这个:

javac -cp ".:dependency.jar" File.java
java -cp ".:dependency.jar" File
Run Code Online (Sandbox Code Playgroud)