# Probleme passage programme java pc a mac



## weeket (1 Novembre 2006)

J'ai cree un programme sous windows que je voudrais excecuter sous mac.
le probleme est que j utilise la JNI avec un fichier .dll qui ne doit pas etre reconnu sous mac. j'ai donc a chaque excecution un message d'erreur:



> Exception in thread "main" java.lang.UnsatisfiedLinkError: no Mesure in java.library.path
> at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1517)
> at java.lang.Runtime.loadLibrary0(Runtime.java:788)
> at java.lang.System.loadLibrary(System.java:834)
> ...


je ne sais vraiment pas quoi faire.

merci


----------



## GrandGibus (1 Novembre 2006)

Aïe... ça ne se présente pas bien :rose: 

Pour obtenir le comportement souhaité, il te faut l'équivalent de ta DLL sous Mac (ou linux, d'ailleurs, c'est le même combat). 

Donc:

 As-tu  les sources de ta DLL ?
 En quel langage est-elle écrite ?
 Qu'est-ce que cette DLL est sensée faire ? (fonctionnellement parlant)


----------



## weeket (1 Novembre 2006)

En fait c est une application pour effectuer une acquisiton de mesure. Il y a donc l'interface java et la parti communication avec la carte d'acquisition qui se fait en c et la jni.

J'ai donc le fichier C, le h et le dll.

pour l instant le fichier c a ete programmé pour effectuer un signal test donc pas de communication avec la carte d'acquisition.

il y a peut etre moyen de regenerer un fichier library a partir du c?


----------



## GrandGibus (1 Novembre 2006)

weeket a dit:


> il y a peut etre moyen de regenerer un fichier library a partir du c?




Oui ! tout à fait (d'où la question de savoir si tu avais les sources). 

Voici 2 liens qui te seront utiles: 

JNI Developmenton Mac Os X
Mac OS X JNI Revisited


----------



## tatouille (4 Novembre 2006)

weeket a dit:


> En fait c est une application pour effectuer une acquisiton de mesure. Il y a donc l'interface java et la parti communication avec la carte d'acquisition qui se fait en c et la jni.
> 
> J'ai donc le fichier C, le h et le dll.
> 
> ...



c'est quoi ta carte d'aquisition ?
es tu developpeur ? quid ?

ton probl&#233;me me semble t'il coule de source pour un developpeur 
? et il trouve rapidemment la r&#233;ponse &#224; sa question en consultant 
la documentation du systeme cible 

communiquer from userland to a system device
ca va etre plus compliqu&#233; ... welcome to unix world et welcome to mach world  ...

tu as l'habitude de g&#233;rer des devices systems sous un unix ?
 parce que franchement si tu bloques sur une erreur concernant une jni (qui est compil&#233;e (pseudo language machine) avec un encapsulage cible compris par le noyeau / linker /loader qui est lui meme d&#233;pendant de son type de processeur
(jeux d'instructions ))

tu vas t'amuser avec le reste 
l'erreur JNI ce n'est m&#234;me pas le million&#232;me du dessus de l'iceberg


----------



## weeket (5 Novembre 2006)

je ne suis vraiment pas developpeur, sinon je ne poserais pas cet question.
Il y a 2 mois je n'avais jamais fais de java de ma vie alors la jni ca ne coule pas de source pour moi encore moins sur Xnote.
J'ai suivi un protocole pour le faire sur pc.
je demande juste de l'aide je vois pas pouquoi tu me dis te telles choses en employant de tel mot...


----------



## GrandGibus (5 Novembre 2006)

Arf... du Tatouille tout craché ça :rateau: 

Tatouille voulait simplement te sensibiliser sur le fait que tu risques d'en baver (techniquement parlant) en te lançant dans une telle entreprise !

Disons que la virulence de ses propos souligne la disproportion entre le niveau de la question posée, et le niveau requis pour réussir à faire ce que tu cherches. 


Néanmoins, ce forum est bien le bon endroit, et armé de patience et de bonne volonté, je suis certain que tu y parviendras . 


P.S. _ce qu'un âne peut faire, un autre âne peut le faire aussi_

P.S.2 Tatouille, ne te sens pas visé


----------



## weeket (5 Novembre 2006)

je cherche juste a faire un relevé de temperature avec une interface java .
On m'a dit d'utiliser la jni pour communiquer avec la carte.
je sais le faire sur pc ms pas sur mac.

J'ai essayé ce que tu m'as donné la derniere fois ms je n'y suis pas arrivé.
Je ne connais pas Xcode et apparament il faut que je crée un projet en reintegrant toutes mes programmes java.

Sur Pc j'utiliser labwindows pour creer la dll a apartir du fichier C et h.


----------



## GrandGibus (5 Novembre 2006)

Certes, mais sous Windows, tu avais également les drivers de ta carte qui permettaient à ta DLL C (dont tu as le code) de fonctionner. 

Est-ce le cas sur mac ? (je ne le pense pas). D'où les mises en garde de Tatouille.

Concernant le code Java, s'il est bien écrit (càd portable), tu n'auras pas besoin de le recompiler. Seul le code C de ta carte sera à recompiler. Un simple Makefile peut faire l'affaire. 

La carte est-elle disponible dans le commerce ?


----------



## tatouille (5 Novembre 2006)

GrandGibus a dit:


> Arf... du Tatouille tout craché ça :rateau:
> 
> Tatouille voulait simplement te sensibiliser sur le fait que tu risques d'en baver (techniquement parlant) en te lançant dans une telle entreprise !
> 
> ...



il y avait vraiment rien d'agressif juste des interrogations pour déblayer le Terrain 
et comprendre ?

il y a vraiment que les ânes qui se vexent 
 la c'est du tatouille


----------

