Empaquetar archivos DLL en archivos JAR
Ha adquirido una biblioteca JAR de terceros que viene con dos archivos DLL correspondientes. Su aplicación Java se basa en esta biblioteca y usted busca fusionar todos los componentes (su código, el JAR de terceros y las DLL) en un único y conveniente archivo JAR.
Empaquetar las DLL
Los archivos JAR funcionan esencialmente como archivos ZIP. Para incluir archivos DLL en su JAR, simplemente colóquelos en cualquier lugar dentro de su estructura. Sin embargo, simplemente empaquetar las DLL no es suficiente. Antes de usarlos, debe extraerlos del JAR y guardarlos en una ubicación designada en su disco duro.
Ejemplos de código
Aquí hay un bloque de código Java de ejemplo que demuestra este proceso:
// Package the DLLs in the JAR file // ... (your code here) // Extract and load the DLLs from the JAR private static void loadFromJar() { // Determine the temporary directory path String path = "AC_" new Date().getTime(); // Extract the DLLs and load them into memory loadLib(path, "acwrapper"); loadLib(path, "aamapi51"); loadLib(path, "libeay32"); } // Extract and load a specific DLL private static void loadLib(String path, String name) { InputStream in = Foo.class.getResourceAsStream("/lib-bin/" name ".dll"); File fileOut = new File(System.getProperty("java.io.tmpdir") "/" path "/lib-bin/" name ".dll"); OutputStream out = FileUtils.openOutputStream(fileOut); IOUtils.copy(in, out); in.close(); out.close(); System.load(fileOut.toString()); }
En este código, las DLL se extraen al directorio temporal especificado por "ruta" y luego se cargan en la memoria usando System.load(). Tenga en cuenta que es posible que deba ajustar las rutas exactas de los archivos y de los recursos según su estructura JAR específica y las ubicaciones de las DLL.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3