如何为两个目录设置java -classpath?

Jee*_*ena 5 java jvm

我想尝试使用Java进行一些测试.我有两个目录rootroot/lib.我有一个root/lib/Test.java文件和一个root/Foo.java文件.我可以编译两个javac lib/Test.java然后然后javac -classpath lib Foo.java得到:

root/
 Foo.java
 Foo.class
 lib/
  Test.java
  Test.class
Run Code Online (Sandbox Code Playgroud)

这是他们的样子:

class Foo {
  static public void main(String[] argv) {
    System.out.println(Test.test());
  }
}
Run Code Online (Sandbox Code Playgroud)

class Test {
  public static int test() {
    return 2;
  }
}
Run Code Online (Sandbox Code Playgroud)

如何运行它们以便它们一起工作而不添加import语句?我试过java -classpath ".;lib" Foo但我得到了java.lang.NoClassDefFoundError: Foo

Lala: jeena$ cd root
Lala:root jeena$ java -classpath ".;lib" Foo
Exception in thread "main" java.lang.NoClassDefFoundError: Foo
Caused by: java.lang.ClassNotFoundException: Foo
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Run Code Online (Sandbox Code Playgroud)

Isa*_*ett 8

这表明你是root的父母:

javac -classpath root/lib Foo.java

这表明你是根本的:

java -classpath".; lib"Foo

你实际在哪个目录工作?也许绝对路径对你来说更容易?

还有什么操作系统?例如,在Linux上,您的路径分隔符将:代替;.