我正在使用Eclipse IDE 2019-12和jre1.8.0_231
我想为冒险游戏创建一个库,该库能够读取json文件以将其转换为对象。当我将库导出到.jar文件(不可运行),然后将其导入我的测试项目中以确保一切正常时,我制作了资产源文件夹并放入Lantern.json,填写了我需要的内容并尝试使用我的库将json文件的值转换为Item对象并运行该方法。但是,当我运行它时,出现此错误...
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject
at com.ferisjumbo.adventure.JSONReader.JSONUtil.getJSONObjectFile(JSONUtil.java:28)
at com.ferisjumbo.adventure.JSONReader.JSONReader.getJSONItem(JSONReader.java:11)
at Main.main(Main.java:7)
Caused by: java.lang.ClassNotFoundException: org.json.JSONObject
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 3 more
我尝试研究此错误,但对我来说听起来像胡言乱语,没有任何意义。
以下是发生的事情的摘要...
//Main (located in src folder in project)
import com.ferisjumbo.adventure.JSONReader.Item;
import com.ferisjumbo.adventure.JSONReader.JSONReader;
public class Main {
public static void main(String[] args) {
Item Lantern = JSONReader.getJSONItem("Lantern.json");
System.out.println(Lantern.toString());
}
}
//JSONReader (located in library)
package com.ferisjumbo.adventure.JSONReader;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONObject;
public class JSONReader {
public static Item getJSONItem(String path) {
JSONObject item = JSONUtil.getJSONObjectFile(path);
.....
//JSONUtil (located in library)
package com.ferisjumbo.adventure.JSONReader;
import java.io.InputStream;
import java.util.Scanner;
import org.json.JSONObject;
public class JSONUtil {
public static String getJSONString(String path) {
Scanner scanner;
InputStream IStream = FileHandler.inputStreamFromFile(path);
scanner = new Scanner(IStream);
String json = scanner.useDelimiter("\\z").next();
scanner.close();
return json;
}
public static JSONObject getJSONObjectFile(String path) {
return new JSONObject(getJSONString(path));
}
Here is the Project tree if you need it
如果您需要其他信息,我可以提出更多建议。谢谢!