gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 19:35:42 27 4
gpt4 key购买 nike

我正在尝试使用 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

这是他们的样子:

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)

最佳答案

这表明您在 root 的父级中:

javac -classpath root/lib Foo.java

这表明您处于 root 状态:

java -classpath ".;lib" Foo

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

另外,什么操作系统?例如,在 Linux 上,您的路径分隔符将是 : 而不是 ;

关于java - 如何为两个目录设置java -classpath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5781963/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com