&引用;java.lang.ClassNotFoundException:com.google.gson.gson“;但是在Eclipse上本地项目的构建路径中有它
我正在尝试我的第一个Java项目,并希望使用Gson读取Json文件(我从电子表格生成),然后作为类对象添加&引用;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();
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
运行东西,但它为您提供了一个工作项目结构)。