2012-09-27 22 views
8

Ich bin nicht sicher, ob meine Frage mehr über Ubuntu oder Java verwandt ist, also verzeiht mir!Hinzufügen einer Bibliothek zu Java CLASSPATH in Ubuntu

Ich versuche, ein Java-Programm zu kompilieren, aber ich bekomme die folgende Fehlermeldung:

package javax.comm does not exist 

ich das erforderliche Paket heruntergeladen haben comm.jar aber ich weiß nicht, wie/wo soll ich diese Datei installieren/kopieren.

Ich habe irgendwo gelesen, dass dies in CLASSPATH Ordner sein sollte, aber ich habe diesen Ordner nicht.

Dies ist, was ich für java -version bekomme ich denke, das bedeutet, dass ich bereits Java in meinem System installiert haben:

java version "1.6.0_24" 
OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.12.04.1) 
OpenJDK Server VM (build 20.0-b12, mixed mode) 

Ich habe auch diese Ordner in /usr/lib/jvm/:

default-java    java-1.7.0-openjdk-i386 java-6-openjdk-i386 
java-1.6.0-openjdk  java-6-openjdk   java-7-openjdk-common 
java-1.6.0-openjdk-i386 java-6-openjdk-common java-7-openjdk-i386 

Antwort

12

Normalerweise geben Sie den Classpath, wenn Sie Ihr Java-Programm mit dem Schalter java -cp your.jar xxxx.java

starten Aber man kann es auch durch Kopieren des jar auf die Vorgaben Ihrer Java-Installation dauerhaft hinzufügen -java/jre/lib/ext-Ordner.

nehmen schließlich einen Blick auf diese Frage: Setting multiple jars in java classpath

+0

funktioniert nicht für mich .... – LoveToCode

1

können Sie versuchen, tun sie es wie folgt:

  1. javac -cp comm.jar XXXXX.javaoder 0
  2. export CLASSPATH=comm.jar:$CLASSPATH
7

Die Umgebungsvariable CLASSPATH enthält einen Doppelpunkt getrennte Liste von Orten Java für Klassen suchen soll. Versuchen

export CLASSPATH=$CLASSPATH:/path/to/comm.jar 
1

Wenn Sie eine Klasse foo.bar.Baz namens kompilieren wollen, können Sie die Baz.java Datei in einem Verzeichnis foo/bar und starten javac von foo ‚s übergeordnete Verzeichnis setzen müssen, das heißt, wenn Sie den Inhalt des aktuellen Verzeichnisses auflisten können Sie siehe foo aufgelistet. Alternativ gibt es die -sourcepath Befehlszeilenschalter:

javac -sourcepath .:/home/asdf/qwerty foo.bar.Baz.java 

Vorausgesetzt, dass Ihre Klasse deklariert ist als

folgt
import foo.bar.*; 
public class Baz {} 

Sie müssen diesen Code setzen in einer /home/raf/foo/bar/Baz.java Datei und Ändern Sie in das Verzeichnis /home/raf vor dem Compiler Aufruf .

javac wird das "Paket foo.bar existiert nicht" Fehler ausgeben, wenn es keinen foo/bar Verzeichnisbaum in seinem Quellpfad finden kann. Sie wechseln also entweder in das richtige Verzeichnis oder verwenden den Schalter -sourcepath, um auf das Stammverzeichnis des Projekts zu zeigen, dh auf das Verzeichnis, das javax/comm enthält.Legen Sie Ihre Quellen in einem Verzeichnis wie folgt aus:

+ /home/raf/project/src 
| 
+-/javax 
    | 
    +-/comm 

und rufen Javac aus dem src Verzeichnis

cd /home/raf/project/src 
javac $filenames 

oder mit dem oben erwähnten Schalter

javac -sourcepath /home/raf/project/src $filenames 

Sie benötigen CLASSPATH anpassen zu lassen javac kompiliert gegen vorhandene Archive.

Verwandte Themen