gpt4 book ai didi

java - 未找到 Gson 类

转载 作者:行者123 更新时间:2023-12-01 06:04:34 24 4
gpt4 key购买 nike

我有 gradle.build 文件,我在其中获取 Gson 库。所以,问题是:gradle下载gson.jar还是我需要手动下载?

这是我的build.gradle:

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
mavenCentral()
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.code.gson:gson:2.8.2'
testCompile group: 'junit', name: 'junit', version: '4.12'
}

但是执行以下代码后失败,因为它找不到Gson:

private static class StoreHandler implements HttpHandler {
Gson gson = new Gson();

@Override
public void handle(HttpExchange httpExchange) throws IOException {
String data = "hi!";
httpExchange.getResponseBody().write(gson.toJson(data).getBytes());
}
}

堆栈跟踪如下(ClassNotFoundException:com.google.gson.Gson):

/usr/lib/jvm/java-8-oracle/bin/java -Didea.launcher.port=7533 -Didea.launcher.bin.path=/home/nazariy/idea/bin -Dfile.encoding=UTF-8 -classpath /usr/lib/jvm/java-8-oracle/jre/lib/charsets.jar:/usr/lib/jvm/java-8-oracle/jre/lib/deploy.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/cldrdata.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/dnsns.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/jaccess.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/jfxrt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/localedata.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/nashorn.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunec.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunjce_provider.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunpkcs11.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/zipfs.jar:/usr/lib/jvm/java-8-oracle/jre/lib/javaws.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jce.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jfr.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jfxswt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jsse.jar:/usr/lib/jvm/java-8-oracle/jre/lib/management-agent.jar:/usr/lib/jvm/java-8-oracle/jre/lib/plugin.jar:/usr/lib/jvm/java-8-oracle/jre/lib/resources.jar:/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar:/home/nazariy/Desktop/g/preproduction_practice/store/build/classes/java/main:/home/nazariy/idea/lib/idea_rt.jar com.intellij.rt.execution.application.AppMain com.epam.moshenskyi.server.MainServer
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gson/Gson
at com.epam.moshenskyi.server.http.HttpServerImpl$StoreHandler.<init>(HttpServerImpl.java:31)
at com.epam.moshenskyi.server.http.HttpServerImpl$StoreHandler.<init>(HttpServerImpl.java:30)
at com.epam.moshenskyi.server.http.HttpServerImpl.run(HttpServerImpl.java:22)
at com.epam.moshenskyi.server.MainServer.main(MainServer.java:14)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.ClassNotFoundException: com.google.gson.Gson
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 9 more

更新:如果我从一开始就重新创建项目添加 Gson 依赖项,则一切正常并且 Gson 可以工作,但是如果我向现有项目添加新的依赖项,则会抛出 ClassNotFound。也许它无法用我的项目重新创建 jar 文件并将 Gson 放入其中?

最佳答案

根据您工作的环境,仅向 build.gradle 添加依赖项可能会(不会)由 IDE 自动处理。请尝试从命令行运行 gradle build - 它应该在那里工作,假设您在源代码中导入没有问题。

使用控制台提供的输出进行编辑后,现在很清楚了 - 您的类路径不包含 gradle 下载的依赖项。您需要将它们添加到类路径中。

关于java - 未找到 Gson 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47583342/

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