2012-11-12 10 views
6

Dies ist möglicherweise eine häufige Frage, aber ich kann keinen Klassenpfad für eine JAR-Datei in UBUNTU hinzufügen. Ich habe unten alle Details gegeben Ich weiß:JAR-Klassenpfad in UBUNTU hinzufügen

java befindet sich hier: die o/p von which java Befehl - /usr/bin/java

sudo vim /etc/bash.bashrc 
export CLASSPATH=$CLASSPATH:/downloads/aws-java-sdk-1.3.24/lib/aws-java-sdk-1.3.24.jar 

ps: Download-Ordner direkt unter der Wurzel ist

sudo vim /etc/environment 
CLASSPATH="/usr/lib/jvm/jdk1.7.0/lib: /downloads/aws-java-sdk-1.3.24/lib/aws-java-sdk-1.3.24.jar:" 

Wie Sie sehen können, habe ich den Klassenpfad in bashrc und etc/environment ... hinzugefügt, aber immer noch bekomme ich einen Fehler beim Versuch, die S3Sample.java ausführen, die mit awsssk für Java kommt.

, wenn ich die Java-Datei zu kompilieren, erhalte ich folgende Fehler:

[email protected]:/downloads/aws-java-sdk-1.3.24/samples/AmazonS3$ javac S3Sample.java 

S3Sample.java:25: error: package com.amazonaws does not exist 
import com.amazonaws.AmazonClientException; 

Jetzt verstehe ich klar, dass die JAR-Datei nicht zum Klassenpfad hinzugefügt wird, und so bin ich nicht den Fehler. Ich habe auch versucht javac mit dem Klassenpfad Option - aber es funktioniert nicht :(

PS: JAVA Hause richtig eingestellt ist als andere Java-Programme richtig funktionieren

+0

Was ist das Ergebnis von echo $ CLASSPATH? Und hast du versucht, mit der Option -classpath zu laufen? – Perception

+0

@Perception ich habe diesen Befehl versucht - javac -cp '.: Abc.jar' test.java ... das funktioniert gut, aber ich möchte mehrere JAR-Dateien anstelle von einem angeben. Kannst du mir damit helfen? – user1736333

Antwort

7

Classpath einzustellen, ist es in den meisten. Fälle, die besser zu -cp oder -classpath Argument zu verwenden, wenn javac und java aufrufen. Es Ihnen mehr Flexibilität gibt verschiedene CLASSPATHs für verschiedene Java-Anwendungen zu verwenden.

Mit den -cp und -classpath Argumente classpath getrennt mehrere Gläser und mehrere Standorte enthalten mit einer : (Kolon)

javac -cp ".:/somewhere/A.jar:/elsewhere/B.jar" MyClass.java 
java -cp ".:/somewhere/A.jar:/elsewhere/B.jar" MyClass 

Der Classpath Eintrag im Beispiel wird die Classpath das aktuelle Arbeitsverzeichnis (.) zu enthalten, und die beiden JAR-Dateien A.jar und B.jar.

Wenn Sie die CLASSPATH Umgebungsvariable verwenden möchten, können Sie tun

export CLASSPATH=".:/somewhere/A.jar:/elsewhere/B.jar" 
javac MyClass.java 
java MyClass