it-swarm.com.de

Wie verwende ich Klassen aus JAR-Dateien?

Ich habe die Java Tutorials zu Sun für JAR-Dateien gelesen, kann aber immer noch keine Lösung für mein Problem finden. Ich muss eine Klasse aus einer JAR-Datei namens jtwitter.jar verwenden, die ich heruntergeladen habe Die Datei wurde ausgeführt (ich habe gestern herausgefunden, dass JAR-Dateien durch Doppelklicken ausgeführt werden können), und Vista gab mir die Fehlermeldung "Main-Class Manifest-Attribut konnte nicht von [Pfad] /jtwitter.jar geladen werden". .

Der Typ, der die .jar-Datei codiert hat, möchte, dass ich sie importiere, aber wo speichere ich die .jar-Datei, um sie in meinen Code zu importieren? Ich habe versucht, die .jar-Datei und meine .Java-Datei im selben Verzeichnis abzulegen.

Die Datei, für die ich arbeiten möchte, befindet sich hier: http://www.winterwell.com/software/jtwitter.php

Ich benutze JCreator LE.

124
Gaurav Dadhania

Nicht jede JAR-Datei ist ausführbar.

Nun müssen Sie die Klassen, die sich unter dem Jar befinden, in Ihre Java Datei importieren. Zum Beispiel:

import org.xml.sax.SAXException;

Wenn Sie an einer IDE arbeiten, sollten Sie auf deren Dokumentation verweisen. Oder geben Sie hier in diesem Thread zumindest an, welches Sie verwenden. Es würde uns definitiv ermöglichen, Ihnen weiter zu helfen.

Und wenn Sie keine IDE verwenden, schauen Sie sich bitte die Option javac -cp an. Es ist jedoch viel besser, Ihr Programm in eine jar -Datei zu packen und alle erforderlichen jars darin aufzunehmen. Dann, um Ihre jar auszuführen, wie,

Java -jar my_program.jar

sie sollten eine META-INF/MANIFEST.MF - Datei in Ihrem jar haben. Siehe hier , wie es geht.

33
Adeel Ansari

Angenommen, wir müssen die Klasse Classname verwenden, die in der JAR-Datei org.example.jar Enthalten ist.

Und Ihre Quelle ist in der Datei mysource.Java Wie folgt:

import org.example.Classname;

public class mysource {
    public static void main(String[] argv) {
    ......
   }
}

Zunächst müssen Sie, wie Sie sehen, die Klassen in Ihren Code importieren. Dazu benötigen Sie import org.example.Classname;

Zweitens müssen Sie beim Kompilieren der Quelle auf die JAR-Datei verweisen.

Bitte beachten Sie den Unterschied zwischen der Verwendung von : Und ; Beim Kompilieren

  • Wenn Sie unter einem Unix-ähnlichen Betriebssystem arbeiten:

    javac -cp '.:org.example.jar' mysource.Java
    
  • Wenn Sie unter Windows sind:

    javac -cp .;org.example.jar mysource.Java
    

Danach erhalten Sie die Bytecode-Datei mysource.class

Jetzt können Sie dies ausführen:

  • Wenn Sie unter einem Unix-ähnlichen Betriebssystem arbeiten:

    Java -cp '.:org.example.jar' mysource
    
  • Wenn Sie unter Windows sind:

    Java -cp .;org.example.jar mysource
    
164
GabrieleV

Sie müssen die JAR-Datei in den Klassenpfad einfügen. So kompilieren Sie Ihre Java Klasse:

javac -cp .;jwitter.jar MyClass.Java

So führen Sie Ihren Code aus (vorausgesetzt, MyClass enthält eine Hauptmethode):

Java -cp .;jwitter.jar MyClass

Sie können die JAR-Datei überall haben. Das obige funktioniert, wenn sich die JAR-Datei im selben Verzeichnis befindet wie Ihre Java Datei.

13
kgiannakakis

Sie müssen die .jar-Datei in Ihren Klassenpfad einfügen, wenn Sie Ihren Code kompilieren/ausführen. Dann verwenden Sie einfach Standardimporte der Klassen in der .jar.

6
workmad3

Wie workmad3 sagt, muss sich die JAR-Datei in Ihrem Klassenpfad befinden. Wenn Sie über die Befehlszeile kompilieren, müssen Sie das Flag -classpath verwenden. (Vermeiden Sie die Umgebungsvariable CLASSPATH. Es ist ein Schmerz im Nacken, IMO.)

Wenn Sie eine IDE verwenden, teilen Sie uns bitte mit, welche und wir können Ihnen bei den für diese IDE spezifischen Schritten helfen.

6
Jon Skeet