【发布时间】:2019-12-16 07:23:55
【问题描述】:
我有一个使用从第三方库导入的类
import org.apache.commons.lang3.*;
public class test2 {
public void printing() {
System.out.println(StringUtils.capitalize("hello test2"));
}
public static void main(String[] args) {}
}
我在同一目录中有第二个班级
public class test {
public static void main(String[] args) {
System.out.println("hello test1");
test2 t = new test2();
t.printing();
}
}
我尝试过使用这些命令进行编译
cmd> javac -cp "./lib/commons.jar" test.java
cmd> javac test.java
但两者都报错:error: cannot find symbol test2 t = new test2();
如何引用使用第三方库的类
注意:第一类单独编译没有问题。如果我从第一类中删除导入外部 jar,也会编译。外部 jar 文件位于同一目录中的 lib 文件夹中
我使用的 .jar 链接:https://www-us.apache.org/dist//commons/lang/binaries/commons-lang3-3.9-bin.zip
【问题讨论】:
-
error: cannot find symbol还应该包含有关它无法找到的符号的信息。可以加入吗? -
编辑了它的 test2
-
public static class test2{..}不能是带有static关键字的顶级类,因此它不会编译,导致找不到该类的字节码。尝试删除static关键字。 -
正确的语法是
javac -cp <jar you want to include>;<jar you want to include> <source.java>例子javac -cp mysql-connector-java-8.0.12.jar; Testing.java参考https://stackoverflow.com/a/52155432/1673458 -
你能给我参考我的项目的命令吗?我适用于第二个文件的命令是 cmd> javac -cp "./lib/commons.jar" test.java 。这适用于单独编译第一类。能给我二班的cmd吗