#java #ubuntu #jar #json-simple
#java #ubuntu #jar #json-простой
Вопрос:
В настоящее время я разрабатываю проект, для которого требуется класс json creator на Java. Я пытаюсь использовать библиотеку json-simple и уже загрузил и скопировал файл .jar в каталог своих проектов. Я компилирую свой java-файл с помощью
javac -cp json-simple.jar report.java
однако, когда я пытаюсь запустить его, я получаю это сообщение об ошибке:
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/simple/JSONObject
at report.main(report.java:22)
Caused by: java.lang.ClassNotFoundException: org.json.simple.JSONObject
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
Я использую ubuntu и не могу использовать IDE, такую как eclipse, кто-нибудь может мне помочь? заранее благодарю вас.
Комментарии:
1. В этом сообщении об ошибке не говорится, что json-simple.jar не был найден. Это говорит о том, что класс JSONObject не был найден внутри json-simple.jar .
2. Я проверил файл .jar, и класс там есть! я использовал » jar tf json-simple.jar » чтобы проверить, и это там!
Ответ №1:
Вы определили путь к классу во время компиляции вашего кода. Вы также указывали путь к классу при запуске своего кода?
Java не связывает классы в пути к классу с вашим кодом, он просто ссылается на него, поэтому банки также должны находиться в пути к классу во время выполнения.
Комментарии:
1. да, чтобы это работало, я также должен указать путь к классу при его запуске, в противном случае он просто не находит файл .jar
Ответ №2:
хорошо, ребята, я нашел решение! Для тех, кто в конечном итоге сталкивается с той же проблемой, решение простое: после компиляции программы не запускайте ее, как другие файлы Java, вам нужно дать команду -cp
указать каталог файла .jar, в этом примере это выглядит примерно так:
java -cp json-simple.jar: report.java