[Java] Problème avec gtk-java

Bonjour à tous,

Voici mon problème, j’ai installé sous Linux Slackware les bindings gtk-java et j’ai compilé un des petits programmes d’exemples comme ceci :

adriano@shinobi:~/Projects/Java/Gtk$ javac -classpath /usr/local/share/java/gtk2.4.jar base.java
adriano@shinobi:~/Projects/Java/Gtk$ java base
Exception in thread “main” java.lang.NoClassDefFoundError: base (wrong name: base/base)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
adriano@shinobi:~/Projects/Java/Gtk$

[code]package base;

import org.gnu.gtk.Gtk;
import org.gnu.gtk.Window;
import org.gnu.gtk.WindowType;

public class base {
 public static void main(String[] args) {
   Gtk.init(args);
   Window window = new Window(WindowType.TOPLEVEL);
   window.show();
   Gtk.main();
 }
}[/code]

Voilà, est ce que quelqu’un peut éclairer ma lanterne ?

Merci d’avance.

1 package en java = un repertoire sur ton DD. Donc, ton source java, tu le mets dans un beau directory base, tu compiles (Ant power!) et tu executes (a la racine):

java -classpath /usr/local/share/java/gtk2.4.jar base.base

Normalement, ca devrait marcher la :stuck_out_tongue:

[quote name=‹ Trevidos › date=’ 25 Nov 2004, 11:29’]1 package en java = un repertoire sur ton DD. Donc, ton source java, tu le mets dans un beau directory base, tu compiles (Ant power!) et tu executes (a la racine):

java -classpath /usr/local/share/java/gtk2.4.jar base.base

Normalement, ca devrait  marcher la  :stuck_out_tongue:
[right][post=« 306971 »]<{POST_SNAPBACK}>[/post][/right][/quote]

Bien vu, j’ai oublié de retirer la ligne package mais ça ne fonctionne toujours pas.

J’ai enlevé la ligne package mais j’ai toujours le même message.

Exception in thread « main » java.lang.NoClassDefFoundError: base

java -cp .:/usr/local/share/java/gtk2.4.jar (…)

tourne toi du coté de ant ou eclipse car compiler à la main, c’est lourd… Et puis met une majuscule à ta classe Base et à ton fichier Base.java pour bien respecter les normes.

Je sais pour les noms de classes à mettre en majuscule. Je le fais tout le temps.
C’est juste que c’est pas moi qui l’ai tapé le fichier, c’est un fichier d’example fourni avec gtk-java.

J’ai déjà essayé avec Eclipse ou en tapant java -cp .:/usr/local/share/java/gtk2.4.jar Base dans la console mais j’ai un problème de configuration :

Exception in thread “main” java.lang.UnsatisfiedLinkError: no gtkjava2.4 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1491)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:834)
at org.gnu.gtk.Gtk.(Gtk.java:95)
at Base.main(Base.java:22)

Est ce que quelqu’un sait comment ajouter gtkjava2.4.jar dans le java.library.path ?

[quote name=‘Shinobi’ date=’ 26 Nov 2004, 13:12’]Je sais pour les noms de classes à mettre en majuscule. Je le fais tout le temps.
C’est juste que c’est pas moi qui l’ai tapé le fichier, c’est un fichier d’example fourni avec gtk-java.

J’ai déjà essayé avec Eclipse ou en tapant  java -cp .:/usr/local/share/java/gtk2.4.jar Base dans la console mais j’ai un problème de configuration :

Exception in thread “main” java.lang.UnsatisfiedLinkError: no gtkjava2.4 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1491)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:834)
at org.gnu.gtk.Gtk.(Gtk.java:95)
at Base.main(Base.java:22)

Est ce que quelqu’un sait comment ajouter gtkjava2.4.jar dans le java.library.path ?
[right][post=“307351”]<{POST_SNAPBACK}>[/post][/right][/quote]

java -Djava.library.path= (…)
ça doit être un .so qu’il lui manque pour faire fonctionner le truc

Ca y est, ça marche. Merci les gars ! :stuck_out_tongue:

Il fallait effectivement inclure le dossier où se trouvaient les 2 librairies manquantes.

Pour compiler : javac -classpath /usr/local/share/java/gtk2.4.jar Base.java

Pour lancer le programme : java -Djava.library.path=/usr/local/lib/ -cp .:/usr/local/share/java/gtk2.4.jar Base

Maintenant, il me faudrait savoir comment changer le java.library.path de façon permanente parce que je ne sais pas comment le paramétrer dans Eclipse.