外部库无法访问文件夹路径

时间:2020-04-24 00:08:16

标签: java

我正在使用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

如果您需要其他信息,我可以提出更多建议。谢谢!

0 个答案:

没有答案