IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Compilation d'un fichier java


Sujet :

Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Points : 9
    Points
    9
    Par défaut Compilation d'un fichier java
    Bonjour,

    LastFm fournit une API pour interroger son site. Un développeur a implanté cette API en java :
    http://www.u-mass.de/lastfm
    http://lastfm-java.googlecode.com/fi...dings-3.22.zip

    Mon problème est le suivant :
    Je souhaite compiler le fichier
    /home/crazyhorse/last.fm-bindings-3.22/src/examples/ArtistExample.java

    Naïvement je tape sous la console:
    cd /home/crazyhorse/last.fm-bindings-3.22/src/examples/
    javac -classpath ../../last.fm-bindings.jar ArtistExample.java
    (last.fm-bindings.jar est le package fourni par le développeur)

    J'obtiens alors les erreurs suivantes:
    Syntax error, parameterized types are only available if source level is 5.0
    Syntax error, 'for each' statements are only available if source level is 5.0

    Ce qui semble étrange puisque java -version me renvoit java version "1.6.0_10"

    Et également ces erreurs:
    -The type Collection is not generic; it cannot be parameterized with arguments <Track>

    -The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, String, int)

    J'ai certainement tapé une mauvaise commande de compilation... pouvez-vous m'en proposer une valide ? A moins que le développeur ait fait un travail de cochon, ce dont je doute a priori.

    Merci d'avance ! :o)

  2. #2
    Membre habitué
    Avatar de flo.87
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 132
    Points
    132
    Par défaut
    Tu as clairement un problème de version de Java.

    Tu sembles compiler du code Java >= 5 avec un compilateur < 5.

    Quand tu tapes "java -version" il te renvoie la version de ton jre (pour exécuter) et non de ton compilateur.

    Essaie de saisir "javac -version" pour avoir la version de ton compilateur.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Points : 321
    Points
    321
    Par défaut
    si tu tapes juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javac artisteExample.java
    que se passe-t-il?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    flo.87: effectivement le compilateur était < 5 (gcj-4.3)
    Avec sudo update-alternatives --config javac j'ai naturellement pris java-6-sun. Maintenant ça compile sans problème mais il renvoit pour "java ArtistExample" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Exception in thread "main" java.lang.NoClassDefFoundError: ArtistExample (wrong name: examples/ArtistExample)
    	at java.lang.ClassLoader.defineClass1(Native Method)
    	at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    	at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    	at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    Could not find the main class: ArtistExample.  Program will exit.
    druzy : avec le classpath indiqué pas de problème, mais sans il renvoit plusieurs erreurs.

    Pour information voici le code de ArtistExample.java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    package examples;
     
     
     
    import java.util.Collection;
     
     
     
    import net.roarsoftware.lastfm.Artist;
     
    import net.roarsoftware.lastfm.Track;
     
     
     
    /**
     
     * @author Janni Kovacs
     
     */
     
    public class ArtistExample {
     
     
     
    	public static void main(String[] args) {
     
    		String key = "b25b959554ed76058ac220b7b2e0a026"; //this is the key used in the last.fm API examples online.
     
    		Collection<Track> topTracks = Artist.getTopTracks("Depeche Mode", key);
     
    		System.out.println("Top Tracks for Depeche Mode:");
     
    		for (Track track : topTracks) {
     
    			System.out.printf("%s (%d plays)%n", track.getName(), track.getPlaycount());
     
    		}
     
    	}
     
    }

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    tu dois aussi préciser le classpath pour l'exécution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java -classpath=path/to/laLib.jar:./ lePackage.leMain

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    C'est désormais ok, merci :o)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Programme pour compiler des petits fichiers java
    Par Invité dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 14/09/2010, 16h22
  2. Compiler Le fichier JAVA (Possedant une methode NATIVE) JNI
    Par Serger dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 14/02/2007, 19h32
  3. compiler un fichier .java
    Par Mehdi_82 dans le forum Langage
    Réponses: 5
    Dernier message: 08/08/2006, 10h20
  4. Réponses: 3
    Dernier message: 02/10/2005, 12h30
  5. [Débutant]Compilation d'un fichier .java
    Par adilou1981 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 15/04/2005, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo