java - 运行 Guava 的问题

标签 java guava

我有一个 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”没有执行并出现以下错误。任何人都可以帮助我为什么会发生这种情况或逐步程序来运行给定的代码。谢谢。

错误:

enter image description here

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/

相关文章:

java - 我需要更正代码,如果值在数组中则返回 true,否则返回 false。但这段代码使用 (for in) 循环返回它们

java - 为什么 Google Precondition Library 中的 Checkers 接受对象而不是字符串

multithreading - 线程停在AbstractFuture上的等待条件下

java - Google Guava 供应商示例

java - 使用第一个元素和附加集合进行列表初始化

java - Guava 的 Optional 类有什么意义

java - 在 Spring MVC 中自动生成 id

java - Gradle:增加由 gradle run 任务启动的 java 进程的堆大小

java - Swiftkey 就像 Java 中的文本预测(下一个单词预测)

Java 比较器通过对扩展公共(public)父类的类使用优先级