ver variable permanentes modificar library entorno crear configurar linux java.library.path

variable - Cómo agregar un archivo.so a java.library.path en Linux



variables de entorno windows 10 (4)

Agregue el directorio contenedor a LD_LIBRARY_PATH antes de iniciar la aplicación

export LD_LIBRARY_PATH = $LD_LIBRARY_PATH:/some/pathOfContainingDirectory

Use java -XshowSettings:properties para mostrar el valor java.library.path (y otros).

Estoy trabajando con una aplicación Java que necesita un archivo .dll en java.library.path en Windows. Para ejecutar la misma aplicación en Linux tengo el archivo .so respectivo que se debe agregar a java.library.path en la máquina Linux, no encontré ninguna solución fácil para esto hasta el momento

Puse el .so en una carpeta que ya está en la ruta de la clase, pero mi aplicación todavía se queja de que no se requiere el archivo java.library.path en java.library.path

Me gustaría encontrar:

  1. Formas de agregar java.library.path a java.library.path
  2. Cómo saber si ya está agregado (cuando se agrega)

Tuve muchos problemas para resolver esto, asegúrese de tener el prefijo lib en el nombre de la biblioteca.

Entonces pasos,

  1. export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/some/pathOfContainingDirectory"

  2. Cambie el nombre de las bibliotecas para tener lib como prefijo. [Agregar esto como parte del script de compilación]

    mv JNIDemo.so libJNIDemo.so

Consulte esta respuesta para obtener una explicación detallada https://.com/a/3987567/2076566


Utilicé el método java -XshowSettings: properties y encontré la ruta de una carpeta previamente configurada y copié mi archivo so a esa carpeta


File file = null; private String[] libs_path = System.getProperty("java.library.path").split(":"); public boolean isInstalled() { boolean isInstalled = false; for(String lib : libs_path) { file = new File(lib+"/"+"yourlib.so"); if(file.exists()) { isInstalled = true; break; } } return isInstalled; } public void install() { if(!isInstalled) { for(String lib: lib_path) { // copy your .so to lib break; } } }