&引用;java.lang.ClassNotFoundException:com.google.gson.gson“;但是在Eclipse上本地项目的构建路径中有它

&引用;java.lang.ClassNotFoundException:com.google.gson.gson“;但是在Eclipse上本地项目的构建路径中有它,java,json,eclipse,gson,Java,Json,Eclipse,Gson,我正在尝试我的第一个Java项目,并希望使用Gson读取Json文件(我从电子表格生成),然后作为类对象添加 import com.google.gson.Gson; public class Init { public static void main(String[] args) { // TODO Auto-generated method stub Gson gson = new Gson();

我正在尝试我的第一个Java项目,并希望使用Gson读取Json文件(我从电子表格生成),然后作为类对象添加

import com.google.gson.Gson;

public class Init {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        Gson gson = new Gson();
        
        FileReader fr = null;
        try {
            fr = new FileReader("Log_Model.json");
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
         Object json = gson.fromJson(fr, Item[].class);
         //https://futurestud.io/tutorials/gson-mapping-of-arrays-and-lists-of-objects
         System.out.println(json);
        }
当我运行此命令时,会出现以下错误:

    Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gson/Gson
    at relog.Init.main(Init.java:13)
Caused by: java.lang.ClassNotFoundException: com.google.gson.Gson
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 1 more
我使用的Eclipse安装在Windows7的用户文件夹中,gson jar放在项目文件夹中,我已经将其添加到构建路径中。
将GSON添加到项目中:

在Eclipse菜单中打开窗口首选项,然后导航到 Java构建路径用户库选项卡。单击“新建”并输入新用户 库名称:如“gson_lib”并点击ok。选择“gson_lib”时 按添加外部jar并找到下载的gson-2.8.6.jar。 应用并关闭

首先创建类JSON模式。您可以使用 例如:

public class User {
    
    public String name, email;
    public int age;
    
    public User(String name, String email, int age){
        this.name = name;
        this.email = email;
        this.age = age;
    }
    
}
代码:

import com.google.gson.*;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonReader;

public class Main {
private static final Type USER_TYPE = new TypeToken<List<User>>() {}.getType();
    public static void main(String[] args) {
    JsonReader reader = new JsonReader(new FileReader("user.json"));       
    // change the JSON string to Object
    Gson gson = new GsonBuilder().create();
    List<User> data = gson.fromJson(reader, USER_TYPE); // contains the whole user list
    data.toScreen(); // prints to screen some values
    }    
}
import com.google.gson.*;
导入javax.json.json;
导入javax.json.JsonObject;
导入javax.json.JsonReader;
公共班机{
私有静态最终类型USER_Type=new TypeToken(){}.getType();
公共静态void main(字符串[]args){
JsonReader=newjsonreader(newfilereader(“user.json”);
//将JSON字符串更改为Object
Gson Gson=new GsonBuilder().create();
List data=gson.fromJson(reader,USER_TYPE);//包含整个用户列表
data.toScreen();//打印以筛选某些值
}    
}

类路径和模块路径之间存在冲突,这是在Java 9中引入的,比所有摇滚音乐会都要令人头痛。我强烈建议使用Maven或Gradle,可能是使用由生成的一个非常简单的项目(您现在可以忽略所有Spring部分,从
main
运行东西,但它为您提供了一个工作项目结构)。