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

Groovy Java Discussion :

Utiliser les classes d'une bibliothèque externe (celles de Groovy)


Sujet :

Groovy Java

  1. #1
    Invité
    Invité(e)
    Par défaut Utiliser les classes d'une bibliothèque externe (celles de Groovy)
    Salut, Ô programmeur, programmeuse.

    Allons droit au but !!!
    Etant revenu des vacances, j'ai décidé de m'y (re)mettre au langage Java. A vrai dire, si j'ai pris cette decision, c'est surtout grâce au langage de script Groovy qui en quelque sorte redonne une seconde jeunesse à Java.
    J'ai donc téléchargé groovy (le fichier avec l'installateur, l'executable), version 1.6.4 que j'utilise avec le jdk version 1.5.0_10.

    Par la suite l'installateur m'a crée la variable d'environnement :

    GROOVY_HOME, ayant pour valeur : C:\Program Files\Groovy\Groovy-1.6.4

    L'installateur m'a modifié la variable d'environnement :

    PATH, en ajoutant : %GROOVY_HOME%\bin


    Et j'ai crée manuellement la variable d'environnement :

    CLASSPATH ayant pour valeur : C:\Program Files\Groovy\Groovy-1.6.4\embeddable\groovy-all-1.6.4.jar;C:\Program Files\Java\jdk1.5.0_10\lib



    Pour tester le tout, j'ai utilisé ce code source groovytest.groovy :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    println('Hello World : ' + argument)
    return "Valeur de retour"
    et ce code source MaClasseGroovy.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
     
    import groovy.lang.Binding;
    import groovy.lang.GroovyShell;
    import groovy.lang.Script;
     
    import java.io.File;
    import java.io.IOException;
     
    import org.codehaus.groovy.control.CompilationFailedException;
     
    public class MaClasseGroovy{
     
        public static void main(String[] args){
     
    		GroovyShell shell = new GroovyShell();
    		Script script;
    		try {
     
    			// Chargement du script groovy
    			script = shell.parse(new File("./groovytest.groovy"));
    			Binding binding = new Binding();
     
    			// Création d'un paramètre
    			binding.setVariable("argument", "Saint Nicolas");
    			script.setBinding(binding);
     
    			// Exécution du script
    			Object retour = script.run();
     
    			// Affichage de la valeur de retour du script
    			System.out.println(retour);
     
    		}
    		catch (CompilationFailedException e){
    			e.printStackTrace();
    		} 
    		catch (IOException e) {
    			e.printStackTrace();
    		}
        }
    }
    Ces deux codes sources sont tirés de l'article "Introduction au langage de script Groovy" trés bon tutoriel.

    Pour compiler j'utilise la super Invite de commande de Windows XP.

    Je tape :
    javac MaClasseGroovy.java
    et
    java MaClasseGroovy

    et voici ce que m'affiche la console :



    C:\Program Files\Java\jdk1.5.0_10\lib>java MaClasseGroovy
    Exception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/Opcodes
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.Class.getDeclaredMethods(Unknown Source)
    at org.codehaus.groovy.reflection.CachedClass$3$1.run(CachedClass.java:83)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.codehaus.groovy.reflection.CachedClass$3.initValue(CachedClass.java:80)
    at org.codehaus.groovy.reflection.CachedClass$3.initValue(CachedClass.java:78)
    at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:33)
    at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:20)
    at org.codehaus.groovy.reflection.CachedClass.getMethods(CachedClass.java:252)
    at groovy.lang.MetaClassImpl.addInterfaceMethods(MetaClassImpl.java:365)
    at groovy.lang.MetaClassImpl.fillMethodIndex(MetaClassImpl.java:289)
    at groovy.lang.MetaClassImpl.initialize(MetaClassImpl.java:2890)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:106)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:65)
    at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:28)
    at org.codehaus.groovy.runtime.InvokerHelper.<clinit>(InvokerHelper.java:47)
    at groovy.lang.GroovyObjectSupport.<init>(GroovyObjectSupport.java:32)
    at groovy.lang.Binding.<init>(Binding.java:32)
    at groovy.lang.GroovyShell.<init>(GroovyShell.java:55)
    at MaClasseGroovy.main(MaClasseGroovy.java:16)Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Opcodes
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 33 more


    Y'a-t-il des personnes qui sauraient d'ou vient le problème ?

    Je vous reMercie pour votre aide.

  2. #2
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par jamaliss Voir le message
    /.../
    et voici ce que m'affiche la console :


    C:\Program Files\Java\jdk1.5.0_10\lib>java MaClasseGroovy
    Exception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/Opcodes
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    .../

    Y'a-t-il des personnes qui sauraient d'ou vient le problème ?

    Je vous reMercie pour votre aide.
    salut,
    il te manque la librairie asm qui est pourtant bien contenue dans le fichier embeddable sous le nom groovyjarjarasm.
    Je viens de tester rapidos chez moi, il n'y a aucun problème.
    A mon avis vérifie ton classpath.

    Marc

Discussions similaires

  1. Utiliser une bibliothèque externe
    Par falcoman33 dans le forum Qt Creator
    Réponses: 2
    Dernier message: 26/04/2014, 09h59
  2. Comment utiliser les attributs d'une classe héritière ?
    Par neufrdb dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 04/04/2011, 19h20
  3. Utiliser les propriétés d'une autre classe
    Par maparè dans le forum Langage
    Réponses: 4
    Dernier message: 05/03/2010, 16h43
  4. utiliser les attribut d'une classe dans une autre classe
    Par kaissaoui dans le forum Langage
    Réponses: 11
    Dernier message: 18/07/2007, 15h13
  5. [Taglibs] Utiliser les classes css ?
    Par PeteMitchell dans le forum Struts 1
    Réponses: 4
    Dernier message: 05/05/2007, 01h31

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