gpt4 book ai didi

Java:如何使用 3rd 方库?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:18:09 28 4
gpt4 key购买 nike

代码显示使用 -cp 触发器编译但未运行。显然,它找不到 HashMultimap。类路径问题?

$ javac -cp google-collect-1.0.jar  MultiThing.java 
$ java -cp google-collect-1.0.jar MultiThing
Exception in thread "main" java.lang.NoClassDefFoundError: MultiThing
Caused by: java.lang.ClassNotFoundException: MultiThing
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
Could not find the main class: MultiThing. Program will exit.
$ cat MultiThing.java
import java.io.*;
import java.util.*;
import com.google.common.annotations.*;
import com.google.common.collect.*;

public class MultiThing {
public static void main(String[] args) {
Multimap<String, String> wordToFiles = HashMultimap.create();
wordToFiles.put("first", "HELLO");
wordToFiles.put("first", "HALLO");
for (String thing : wordToFiles.get("first")){
System.out.println(thing);
}
}
}
$ ls
google-collect-1.0.jar MultiThing.class com MultiThing.java

API for MultiMap.

最佳答案

就导入和编译而言,Java 中的包在层次上并不相关 - 例如,您不能通过导入 com.*< 来导入 com.google.collections.*/.

您提到的集合库中的包是:

com.google.common.core.*

com.google.common.annotations.*

com.google.common.collect.*

尝试显式导入这些包。如果您使用的是像 Eclipse 这样的 IDE,它可以为您整理出所有导入语句。


响应更新:-cp 覆盖你的类路径。您需要包含当前目录以将您编写的类保留在类路径中,因此假设您在包含类的目录中运行,请按如下方式设置类路径 java -cp .:google-collect -1.0.jar MultiThing

关于Java:如何使用 3rd 方库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2579564/

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