我有一个 Java 文件 Test.java(如下),它使用 Guava 的 HashMultiMap(从 http://code.google.com/p/guava-libraries/ 下载)。我将 .java 和 .jar 文件都存储在 "C:\Program Files\Java\jdk1.6.0_25\bin"中。然后在命令提示符下执行命令:
javac -cp guava-11.0.2.jar Test.java
和
java -cp guava-11.0.2.jar Test
“javac -cp guava-11.0.2.jar Test.java”正在执行并生成一个 .class 文件。但是,“java -cp guava-11.0.2.jar Test”没有执行并出现以下错误。任何人都可以帮助我为什么会发生这种情况或逐步程序来运行给定的代码。谢谢。
错误:
Test.java代码:
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
public class Test {
public static void main(String[] args) {
try {
String key = "hello";
Multimap myMap = HashMultimap.create();
myMap.put(key, 1);
myMap.put(key, 5000);
System.out.println(myMap.get(key));
}
catch (Exception e) {
System.out.println(e);
}
}
}
最佳答案
通过将 Guava 放在类路径中,您已经替换当前目录作为类路径。这样做:
java -cp guava-11.0.2.jar;. Test
;
在 Windows 上用作路径分隔符(在 Unix 上为 :
),而 .
用于当前目录。所以这基本上是说:“使用 Guava jar 文件的类路径和当前目录运行,并在名为 Test
的类中执行 main
方法”
编辑:我没有发现您的第二次尝试 - 问题是使用冒号而不是分号作为路径分隔符。最好使用 .;guava-11.0.2.jar
代替。
关于java - 运行 Guava 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9844777/