package org. json не существует

Я загрузил библиотеку JSON для Java из Maven Repo и установил файл .JAR в каталог библиотеки Java на UBuntu 14.04. Я попытался скомпилировать простой фрагмент JAVA для разбора JSON, но компилятор (javac) сообщает мне, что библиотеки org.json не существует ..

Вот некоторые подробности.

$ echo $CLASSPATH
/usr/share/java

$ ll /usr/share/java/json*
-rw-r--r-- 1 root root 49176 Jun 12 22:31 /usr/share/java/json-20160212.jar

$ jar tf /usr/share/java/json-20160212.jar 
META-INF/MANIFEST.MF
META-INF/
META-INF/maven/
META-INF/maven/org.json/
META-INF/maven/org.json/json/
META-INF/maven/org.json/json/pom.properties
META-INF/maven/org.json/json/pom.xml
org/
org/json/
org/json/CDL.class
org/json/Cookie.class
org/json/CookieList.class
org/json/HTTP.class
org/json/HTTPTokener.class
org/json/JSONArray.class
org/json/JSONException.class
org/json/JSONML.class
org/json/JSONObject$1.class
org/json/JSONObject$Null.class
org/json/JSONObject.class
org/json/JSONString.class
org/json/JSONStringer.class
org/json/JSONTokener.class
org/json/JSONWriter.class
org/json/Property.class
org/json/XML.class
org/json/XMLTokener.class

$ javac JsonParser.java 
JsonParser.java:1: error: package org.json does not exist
import org.json.*;
^
1 error

Если я уже установил $ CLASSPATH, почему компилятор Java сообщает мне, что библиотеки не существует, когда она действительно существует?

0
задан 15 June 2016 в 20:25
1 ответ

Beim Kompilieren müssen Sie den absoluten Pfad zur .jar-Datei angeben, die das Paket mit seinen Klassen enthält, wie folgt:

javac -cp /usr/share/java/json-20160212.jar JsonParser.java

Gemäß der offiziellen Dokumentation von Oracle zu den Variablen PATH und CLASSPATH:

Die bevorzugte Methode zum Angeben des Klassenpfads ist die Verwendung des Befehlszeilenschalters -cp. Dadurch kann der CLASSPATH für jede Anwendung einzeln eingestellt werden, ohne dass dies Auswirkungen auf andere Anwendungen hat. Das Einstellen von CLASSPATH kann schwierig sein und sollte mit Vorsicht durchgeführt werden.

Der Standardwert des Klassenpfads ist ".", Was bedeutet, dass nur das aktuelle Verzeichnis durchsucht wird. Die Angabe der Variablen CLASSPATH oder des Befehlszeilenschalters -cp überschreibt diesen Wert.

1
ответ дан 4 December 2019 в 16:35

Теги

Похожие вопросы