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$
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 ?
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):
[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):
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
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.