RMI et Visual J++

egamir Messages postés 1 Date d'inscription mardi 26 août 2003 Statut Membre Dernière intervention 26 août 2003 - 26 août 2003 à 10:19
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 - 29 août 2003 à 15:39
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,

2 réponses

mimah Messages postés 35 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 11 novembre 2003
26 août 2003 à 20:44
Salut,

En fait ça ne peux pas marcher comme tu l'as fait parce que RMI est implémenté dans une dll en code natif donc les classes Java ne suffisent pas.
Je ne sais pas comment marche VJ++ mais tu dois pouvoir lui spécifier la JVM que tu utilises quand même ou il utilise toujours la sienne?
Si tu peux lui spécifier la JVM, je pense (du moins j'espère) qu'il importera les dll qui faut.

J'espère que ça va t'aider un petit peu.
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
29 août 2003 à 15:39
8-) Neodante 8-)

C'est aussi ça de vouloir utiliser du Micro$oft proprio avec un langage 'libre' (si on peut le qualifier ainsi) ! Y a que des problèmes de compatibilité, avec MS on peut s'attendre à tout mais rarement à ce que cela marche !!
Désolé j'ai pas la soluce là tout de suite sur moi j'utilise pas J++ pour faire mes progs Java mais si c'est ton taf qui t'impose J++ tu es tout excusé (tu me diras ça te fait une belle jambe ce que je te dis ... mais j'avais envie de me défouler -> pas contre toi mais contre l'ennemi public n°1 MS !
Promis la prochaine fois je serais plus constructif !!!
@+
0
Rejoignez-nous