web-dev-qa-db-fra.com

Comment utiliser les classes de fichiers .jar?

J'ai lu les tutoriels Java sur les fichiers JAR pour Sun, mais je ne trouve toujours pas de solution à mon problème. Je dois utiliser une classe d'un fichier jar appelé jtwitter.jar. J'ai téléchargé le fichier et essayé de l'exécuter (j'ai découvert hier que les fichiers .jar peuvent être exécutés en double-cliquant dessus) et Vista m'a donné une erreur en disant " Impossible de charger l’attribut Main-Class Manifest depuis [path] /jtwitter.jar ".

Le gars qui a codé le fichier .jar veut que je l'importe, mais où dois-je stocker le fichier .jar pour l'importer dans mon code? J'ai essayé de mettre le fichier .jar et mon fichier .Java dans le même répertoire, cela n'a pas fonctionné.

Le fichier pour lequel je tente de travailler est ici: http://www.winterwell.com/software/jtwitter.php

J'utilise JCreator LE.

124
Gaurav Dadhania

Tous les fichiers jar ne sont pas exécutables.

Maintenant, vous devez importer les classes, qui se trouvent sous le fichier jar, dans votre fichier Java. Par exemple,

import org.xml.sax.SAXException;

Si vous travaillez sur un IDE, vous devriez vous référer à sa documentation. Ou du moins, spécifiez celui que vous utilisez ici dans ce fil. Cela nous permettrait certainement de vous aider davantage.

Et si vous n’utilisez aucun IDE, consultez l’option javac -cp . Cependant, il est préférable de conditionner votre programme dans un fichier jar et d'y inclure tous les fichiers jar requis. Ensuite, pour exécuter votre jar, par exemple,

Java -jar my_program.jar

vous devriez avoir un fichier META-INF/MANIFEST.MF dans votre jar. Voir ici , pour savoir comment faire.

33
Adeel Ansari

Disons que nous devons utiliser la classe Classname contenue dans le fichier jar org.example.jar

Et votre source est dans le fichier mysource.Java comme ceci:

import org.example.Classname;

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

Premièrement, comme vous le voyez, dans votre code, vous devez importer les classes. Pour ce faire, vous avez besoin de import org.example.Classname;

Deuxièmement, lorsque vous compilez la source, vous devez référencer le fichier jar.

Veuillez noter la différence entre : et ; lors de la compilation

  • Si vous êtes sous un système d'exploitation semblable à Unix:

    javac -cp '.:org.example.jar' mysource.Java
    
  • Si vous êtes sous windows:

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

Après cela, vous obtenez le fichier de bytecode mysource.class

Maintenant vous pouvez lancer ceci:

  • Si vous êtes sous un système d'exploitation semblable à Unix:

    Java -cp '.:org.example.jar' mysource
    
  • Si vous êtes sous windows:

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

Vous devez ajouter le fichier JAR dans le classpath. Pour compiler votre classe Java:

javac -cp .;jwitter.jar MyClass.Java

Pour exécuter votre code (à condition que MyClass contienne une méthode principale):

Java -cp .;jwitter.jar MyClass

Vous pouvez avoir le fichier jar n'importe où. Les opérations ci-dessus fonctionnent si le fichier jar se trouve dans le même répertoire que votre fichier Java.

13
kgiannakakis

Vous devez placer le fichier .jar dans votre chemin de classe lors de la compilation/exécution de votre code. Ensuite, vous utilisez uniquement les importations standard des classes du fichier .jar.

6
workmad3

Comme le dit workmad3, le fichier jar doit figurer dans votre chemin de classe. Si vous compilez à partir de la ligne de commande, vous devrez utiliser l’option -classpath. (Évitez la variable d'environnement CLASSPATH, c'est une douleur dans le cou, IMO.)

Si vous utilisez un IDE, veuillez nous indiquer lequel et nous pouvons vous aider avec les étapes spécifiques à cet IDE.

6
Jon Skeet