Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [Java] Wrapper Java per un sistema in c\c++

    ciao a tutti
    dovrei implementate un wrapper Java per richiamare le funzioni di un sistema scritto in c\c++.
    Vorrei qualche consiglio su come impostare questo lavoro: se ci sono librerie Java che permettono di interfacciare codice scritto in c++; oppure bisogna riscrivere tutto in Java.
    Se è possibile, avere anche qualche esempio(sempre se nn chiedo troppo!!!)
    Spero di avere qualche aiuto
    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] Wrapper Java per un sistema in c\c++

    Originariamente inviato da baffalosolgia
    dovrei implementate un wrapper Java per richiamare le funzioni di un sistema scritto in c\c++.
    Vorrei qualche consiglio su come impostare questo lavoro: se ci sono librerie Java che permettono di interfacciare codice scritto in c++; oppure bisogna riscrivere tutto in Java.
    La risposta è: Java Native Interface (JNI)

    Vedere anche: http://java.sun.com/developer/online...CBook/jni.html
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    prima di tutto ti ringrazio!!!
    ho dato un occhiata al materiale che mi hai indicato pero non riesco a capire una cosa:
    da quanto ho capito dovrei riscrivere in C un programma con le funzioni in C; mai ho gia le classi di questo sistema in C!....mi sto perdendo un pò.......
    spero sia stato chiaro nel spiegare il mio dubbio
    spero mi aiutate
    grazieeee

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da baffalosolgia
    ho dato un occhiata al materiale che mi hai indicato pero non riesco a capire una cosa:
    da quanto ho capito dovrei riscrivere in C un programma con le funzioni in C; mai ho gia le classi di questo sistema in C!....mi sto perdendo un pò.......
    Leggi questa discussione in cui ho spiegato qualcosa di più su JNI.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    grazie, ci ho dato un'occhiata!
    cmq i miei dubbi restano sempre gli stessi, forse nn sono stato a spiegare bene il punto.
    da quanto ho capito, io devo riscrivere il codice c(le classi che implementano il sistema .h e .cpp)
    adattandole alle specifiche del JNI?
    grazie ancora

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da baffalosolgia
    cmq i miei dubbi restano sempre gli stessi, forse nn sono stato a spiegare bene il punto.
    da quanto ho capito, io devo riscrivere il codice c(le classi che implementano il sistema .h e .cpp)
    adattandole alle specifiche del JNI?
    La questione è semplice: JNI non è un sistema per poter chiamare direttamente una qualunque funzione in una qualunque libreria nativa.

    È un sistema che permette di chiamare delle funzioni native (in una libreria nota e caricata a runtime tipicamente dalla classe Java) che rispettano un certo insieme di convenzioni come nome/prototipo della funzione e di tipi di dati usati.
    Cosa poi facciano o cosa usino a loro volta queste funzioni, non è importante per JNI.

    JNI spesso si usa per poter chiamare funzioni native in librerie già esistenti. In questo caso si crea una libreria nativa che rispetta le convenzioni JNI in cui le funzioni utilizzano al loro interno funzioni presenti in altre librerie (es. di sistema).

    Visto che hai i sorgenti delle funzioni da richiamare, dipende da come vuoi gestire il progetto e da cosa vuoi realizzare. Vuoi che quelle funzioni siano utilizzabili solo da Java?? Allora modifica le tue funzioni in modo da rispettare le convenzioni JNI e crea una unica DLL.
    Vuoi che quelle funzioni possano essere utilizzate da altri linguaggi ecc...? Allora crea una DLL con le tue funzioni e poi crea una libreria nativa che rispetta le convenzioni JNI e che fa da "ponte" tra Java e la tua libreria.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    in poche parole, il mio obiettivo è quello di creare delle API Java per poter utilizzare il sistema scritto in c++ con Java.
    tu che cosa mi consigli di fare?
    ti ringrazio per la pazienza, per l'aiuto e per i consigli che m stai dando. E' la prima volta che ho a che fare con le JNI.
    grazie ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.