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.