|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jun 2011
Messaggi: 132
|
Wrapper da C a JNI
Ciao a tutti sto cercando di fare un wrapper da C a JAVA.Avendo i sorgenti in C ho pensato di utilizzare JNI.Ho letto una guida su JNI ma non ho capito bene i passaggi da fare,sono un po confusa.Qualcuno mi sa spiegare i passaggi che devo fare per inserire il codice C in Java con JNI?
La guida mi dice di scrivere la classe in java di compilarlo,poi di creare il file header che verrà poi richiamato dal file .c così da creare il file .dll , ma non dovrei fare il contrario? cioè fare una classe in java che richiami i file in c? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2005
Messaggi: 309
|
Premetto che JNI non è un meccanismo semplicissimo. Ti consiglio di riferirti a questo documento che era il pdf che si poteva trovare sul sito della sun un po' di tempo fa. Se leggi l'introduzione vedrai che i capitoli che ti servono sono i primi (gli ultimi sono le specifiche per implementare una java virtual machine)
A pagina 12 c'è il diagramma dei passaggi che devi eseguire che poi sono quelli che hai detto tu. Per il file .h che viene creato da javah devi fare un .c in cui implementi l'interfaccia che trovi nel .h. Poi in questo .c (il wrapper) puoi chiamare altre funzioni C che hai già scritto. Ultima modifica di Cait Sith : 11-11-2012 alle 00:31. |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jun 2011
Messaggi: 132
|
ok ho seguito la guida,per farmi compilare e creare il file .dll,mi fa usare il prompt di microsoft visual studio,io l ho aperto ho inserito i comandi,solo che non m trova la directory del file .c che ho creato e che si trova sul desktop in una cartella.Devo inserirlo da qualche parte? perchè ho anche provato a scrivere nel prompt il percorso del file .c ma me lo ignora!
Ultima modifica di Selyn : 10-11-2012 alle 15:01. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2005
Messaggi: 309
|
Non ho molta esperienza di programmazione in windows, e comunque conosco meglio cygwin rispetto a il visual studio. Un consiglio che ti posso dare è di spostarti con il prompt nella directory del file e poi provare a compilare: magari fa casino con gli spazi nei nomi delle directory.
|
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Jun 2011
Messaggi: 132
|
Quote:
|
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Jun 2011
Messaggi: 132
|
allora,ho risolto con il compilatore,ora ho solo un problema,da fatal error c1083,non trova la libreria jni.h che sta in jdk.
per far compilare e creare la dll scrivo nel prompt in questo modo: cl -IC:\program files\java\jdk1.7.0\include -IC:\program files\java\jdk1.7.0\include\win 32 -LD file.c -FeNome_libreria.dll ora non vedo errori nel codice,non riesco a capire perchè non vede la libreria jni.h |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:22.




















