J'ai développé une classe java "client.java" avec la SDK de sun (qui s'exécute parfaitement avec la jvm de sun).
Cette classe importe le package java.rmi.
Sous visual j++, j'ai créé une classe com à partir de la classe précédemment développée.
Lorsque j'ai essayé de générer la dll, le compilateur ne trouvais pas le package java.rmi.
J'ai donc dézipé tous les fichiers .jar contenus dans JAVA_HOME/lib vers le répertoire de mon projet visual j++.
A la compilation je n'ai plus d'erreur.
Depuis un programme visual basic, j'utilise cette dll et donc son implémentation en java.
A chaque fois que j'exécute cette classe (depuis visual j++ ou depuis mon prog VB), j'ai une erreur de type:
"NoClassDefFoundError". Malheureusement, il ne me donne pas le nom de la classe manquante!
Voici la pile des appels:
java.lang.NoClassDefFoundError
at sun/rmi/server/RemoteProxy.getLogLevel (RemoteProxy.java)
at sun/rmi/server/RemoteProxy.<clinit> (RemoteProxy.java:29)
at sun/rmi/server/RemoteProxy.getStub (RemoteProxy.java)
at java/rmi/registry/LocateRegistry.getRegistry (LocateRegistry.java:139)
at java/rmi/registry/LocateRegistry.getRegistry (LocateRegistry.java:96)
at java/rmi/Naming.getRegistry (Naming.java:197)
at java/rmi/Naming.lookup (Naming.java:75)
at client.connection (client.java:27)
at client.main (client.java:95)
La classe sun.rmi.server.RemoteProxy est bien entendue présente ;-)
Dernière précisions:
- exécutée par la commande "java" (ie: jvm de sun) la classe s'exécute parfaitement
- la variable d'environnement path contient entre autres "JAVA_HOME/bin"
- la variable d'environnement classpath contient entre autres "JAVA_HOME/lib"
- le répertoire de mon projet contient toutes les classes contenues dans tous le fichiers .jar de la SDK
Est-ce vraiment un problème de classe manquante?
Y a t-il un moyen de générer la dll en précisant la jvm qui devra être utilisée lors de l'appel de la classe correspondante?
Merci,