我正在嘗試使用Java進行一些測試。我有兩個目錄root
和root/lib
。我有一個root/lib/Test.java
文件和一個root/Foo.java
文件。我可以javac lib/Test.java
編譯兩者結合,然後javac -classpath lib Foo.java
,並得到:如何爲兩個目錄設置java -classpath?
root/
Foo.java
Foo.class
lib/
Test.java
Test.class
這裏是他們的樣子:
class Foo {
static public void main(String[] argv) {
System.out.println(Test.test());
}
}
和
class Test {
public static int test() {
return 2;
}
}
如何運行它們,所以它們一起工作無需添加導入語句?我曾嘗試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)
這是Linux和OS X我正在嘗試它。我其實是在根內,也許我應該稍微改寫一下這個問題。 – Jeena 2011-04-25 19:10:08
呵呵!好吧,現在我明白了,我應該使用「:」而不是「;」非常感謝你! – Jeena 2011-04-25 19:15:00