Articles of jni

.dll già caricato in un altro classloader?

Ho una webapp in esecuzione in Tomcat 3.2.1 che deve effettuare chiamate JNI per accedere a dati e metodi nel codice C ++ legacy. Un servlet viene caricato all’avvio della webapp che, come parte del suo metodo init , fa sì che un set di dati specifico per quell’istanza webapp venga caricato nelle strutture di […]

Ottenere informazioni sulle windows attive in Java

Sto cercando di aggiornare la mia applicazione in Java per funzionare solo se una finestra di processo con un certo nome è triggers. Ho scoperto che questo è ansible usando JNI, ma non ho idea di come farlo esattamente. Non sono riuscito a trovare alcuna descrizione o esempio che potesse spiegarlo. La mia domanda è […]

Che cosa fa il metodo registerNatives ()?

In java, cosa fa il metodo statico privato registerNatives() della class Object?

Come catturare l’eccezione JNI / Java

Ho uno strato JNI nella mia applicazione. In alcuni casi Java genera un’eccezione. Come posso ottenere l’eccezione Java nel livello JNI? Ho il codice qualcosa come segue. if((*(pConnDA->penv))->ExceptionCheck(pConnDA->penv)) { (*(pConnDA->penv))->ExceptionDescribe(pConnDA->penv); (*(pConnDA->penv))->ExceptionClear(pConnDA->penv); } Questo blocco di codice catturerà solo le eccezioni JNI? Dove verrà registrata la descrizione dell’eccezione nella console (stderr)? Come ottengo questo nel buffer, […]

Come ottenere il puntatore all’interfaccia JNI (JNIEnv *) per le chiamate asincrone

Ho appreso che il puntatore all’interfaccia JNI (JNIEnv *) è valido solo nel thread corrente. Supponiamo di aver iniziato una nuova discussione all’interno di un metodo nativo; come può inviare in modo asincrono eventi a un metodo Java? Poiché questo nuovo thread non può avere un riferimento di (JNIEnv *). L’archiviazione di una variabile globale […]

Dove trovare il codice sorgente per i metodi nativi di java.lang?

Ho vagamente familiarità con il JNI , e sono curioso di vedere la mia implementazione specifica per la macchina per alcuni metodi nativi nel pacchetto java.lang. Thread#currentThread() , ad esempio. Ho trovato un sacco di DLL in [JDK_HOME] / jre / bin, ma come ho detto sto cercando di trovare il codice sorgente. Qualcuno sa […]

Cosa rende le chiamate JNI lente?

So che i ‘confini di attraversamento’ quando si effettua una chiamata JNI in Java è lento. Tuttavia voglio sapere cos’è che lo rende lento? Cosa fa l’implementazione di jvm sottostante quando si effettua una chiamata JNI che lo rende così lento?

Come raggruppare una libreria nativa e una libreria JNI all’interno di un JAR?

La biblioteca in questione è Tokyo Cabinet . Voglio avere la libreria nativa, la libreria JNI e tutte le classi dell’API Java in un file JAR per evitare mal di redistribuzione. Sembra che ci sia un tentativo a questo a GitHub , ma Non include l’effettiva libreria nativa, solo la libreria JNI. Sembra essere specifico […]

Estrai e carica DLL da JAR

La mia applicazione Java utilizza una libreria DLL. Come posso farlo funzionare dal file JAR? La DLL si trova nella cartella delle fonti del progetto. Devo includerlo nel mio JAR, estrarlo in runtime (nella stessa directory del jar) e caricarlo.

java.lang.UnsatisfiedLinkError no *****. dll in java.library.path

Come posso caricare un file dll personalizzato nella mia applicazione web? Ho provato a seguire modi ma il suo fallimento. copiato tutte le dll richieste nella cartella system32 e provato a caricarne una nel costruttore System.loadLibrary Servlet DLL richieste copiate in tomcat_home/shared/lib e tomcat_home/common/lib tutte queste DLL sono in WEB-INF/lib dell’applicazione web