作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我是一名 Java 初学者,正在尝试了解如何使用 apache 公共(public)库。
这是一个源文件Randstr.java
:
import org.apache.commons.lang3.RandomStringUtils;
class Randstr {
public static void main(String[] args) {
String s = RandomStringUtils.random(12);
System.out.println(s);
}
}
我在/usr/share/java/中有 commons-lang3-3.1.jar
文件,并在当前目录中创建了一个符号链接(symbolic link)。然后我这样编译它:javac -cp commons-lang3-3.1.jar Randstr.java
,编译很好,但是当我执行java Randstr
时,我得到了以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/RandomStringUtils
at Randstr.main(Randstr.java:5)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.RandomStringUtils
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
如果我不在类路径中指定 jar 文件,它甚至不会编译:
javac -cp . Randstr.java
# Randstr.java:1: error: package org.apache.commons.lang3 does not exist
# import org.apache.commons.lang3.RandomStringUtils;
# ^
# Randstr.java:5: error: cannot find symbol
# String s = RandomStringUtils.random(12);
# ^
# symbol: variable RandomStringUtils
# location: class Randstr
# 2 errors
javac -cp /usr/share/java/ Randstr.java
# Randstr.java:1: error: package org.apache.commons.lang3 does not exist
# import org.apache.commons.lang3.RandomStringUtils;
# ^
# Randstr.java:5: error: cannot find symbol
# String s = RandomStringUtils.random(12);
# ^
# symbol: variable RandomStringUtils
# location: class Randstr
# 2 errors
通过阅读有关 stackoverflow 的其他问题,我发现这可以通过使用 IDE 来解决,但目前我更喜欢简单的编辑器。
最佳答案
如果你可以编译它
javac -cp commons-lang3-3.1.jar Randstr.java
然后你可以运行它
java -cp commons-lang3-3.1.jar:. Randstr
JAR 文件必须在类路径中。
关于java - 如何在 Ubuntu 上使用 apache commons java 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18026979/
我是一名优秀的程序员,十分优秀!