Cómo configurar java.library.path desde Eclipse

¿Cómo puedo configurar java.library.path para un proyecto completo de Eclipse? Estoy usando una biblioteca Java que se basa en archivos específicos del sistema operativo y necesita encontrar un .dll / .so / .jnilib. Pero la aplicación siempre sale con un mensaje de error de que esos archivos no se encuentran en la ruta de la biblioteca.

Me gustaría configurar todo este proyecto para usar la ruta de la biblioteca. Intenté agregar la ruta como argumento de máquina virtual a algunas configuraciones de ejecución en Eclipse pero eso no funcionó.

¡No te metas con la ruta de la biblioteca! ¡Eclipse lo construye solo!

En su lugar, acceda a la configuración de la biblioteca para sus proyectos y, para cada jar / etc que requiera una biblioteca nativa, amplíelo en la pestaña Bibliotecas . En la vista de árbol, cada biblioteca tiene elementos para source / javadoc y ubicaciones de bibliotecas nativas.

Específicamente: seleccione Project , haga clic derecho -> Propiedades / Java Build Path / Libraries , seleccione un .jar, amplíelo, seleccione la ubicación de la biblioteca nativa , haga clic en Editar , aparecerá el cuadro de diálogo del selector de carpetas)

Enredarse con la ruta de la biblioteca en la línea de comando debería ser su último esfuerzo, porque podría romper algo que ya está configurado correctamente por eclipse.

Ubicación de la biblioteca nativa

Si lo está agregando como un argumento de máquina virtual, asegúrese de que lo prefija con -D :

 -Djava.library.path=blahblahblah... 

Excepto en la forma descrita en la respuesta aprobada, hay otra manera si tiene librerías nativas individuales en su proyecto.

  • en Propiedades del proyecto-> Ruta de comstackción de Java-> Pestaña “Fuente”, hay una lista de sus carpetas de origen
  • Para cada entrada, hay “ubicaciones de bibliotecas nativas”, que también admite rutas dentro del espacio de trabajo.
  • Esto hará que Eclipse lo agregue a su java.library.path.

Para un lanzamiento de aplicación determinado, puede hacerlo como dice jim.

Si desea configurarlo para todo el espacio de trabajo, también puede configurarlo en

 Window-> Preferences-> Java-> Installed JREs 

Cada JRE tiene un “Argumento de VM predeterminado” (que creo que se ignora por completo si se configuran args de VM para una configuración de ejecución).

Incluso podría configurar diferentes JRE / JDK con diferentes parámetros y que algunos proyectos usen uno, otros proyectos usen otro.

Simplemente puede agregar -Djava.library.path=yourPath al eclipse.ini .

Simplemente agregue los archivos * .dll a su c: / windows

Puede obtener java.library.path de los siguientes códigos: y luego agregarle archivos dll bajo cualquier ruta de acceso que obtenga

 import java.util.logging.Logger; public class Test { static Logger logger = Logger.getLogger(Test.class.getName()); public static void main(String[] args) { logger.info(System.getProperty("java.library.path")); } } 

Creo que hay otra razón para querer establecer java.library.path. Subversion viene con muchas bibliotecas y Eclipse no las verá a menos que se pueda agregar java.library.path. Por ejemplo, estoy en OS-X, por lo que las bibliotecas están en \ opt \ subversion \ lib. Hay muchos de ellos y me gustaría mantenerlos donde están (no copiarlos en un directorio lib estándar).

La configuración del proyecto no solucionará esto.

Ninguna de las soluciones anteriores funcionó para mí (Eclipse Juno con JDK 1.7_015). Java solo pudo encontrar las bibliotecas cuando las moví de project_folder / lib a project_folder.

Haga clic en ejecutar
Haga clic en Depurar …
Nueva aplicación Java
Haga clic en la pestaña Argumentos
en la segunda casilla (Argumentos VM) agregue la entrada -D

 -Xdebug -verbose:gc -Xbootclasspath/p:jar/vbjorb.jar;jar/oracle9.jar;classes;jar/mq.jar;jar/xml4j.jar -classpath -DORBInitRef=NameService=iioploc://10.101.2.94:8092/NameService 

etc …

Otra solución sería abrir la ‘configuración de ejecución’ y luego en la pestaña ‘Entorno’, establecer el par {Ruta, Valor}.

Por ejemplo, para agregar un directorio ‘lib’ ubicado en la raíz del proyecto,

  Path <- ${workspace_loc:name_of_the_project}\lib 

Recuerde incluir la carpeta de la biblioteca nativa en RUTA.

Estoy usando Mac OS X Yosemite y Netbeans 8.02, tengo el mismo error y la solución simple que he encontrado es como la anterior, esto es útil cuando necesitas incluir una biblioteca nativa en el proyecto. Lo mismo ocurre con Netbeans:

 1.- Right click on the Project 2.- Properties 3.- Click on RUN 4.- VM Options: java -Djava.library.path="your_path" 5.- for example in my case: java -Djava.library.path= 6.- Ok 

Espero que pueda ser útil para alguien. El enlace donde encontré la solución está aquí: java.library.path – Qué es y cómo usarlo

En algún momento no recibimos Java Build Path haciendo clic derecho sobre el proyecto. luego ve a propiedades …. Haga clic derecho y vaya a propiedades

Luego haga clic en la ruta de comstackción java Propiedades Scrren

Haga clic en agregar jar externo

Haga clic en la pestaña Agregar tarros externos y proporcione la ruta del archivo de su computadora donde haya guardado los tarros.

Aquí hay otra solución:

Mi sistema de comstackción (Gradle) agregó una biblioteca nativa requerida (dll) a la ruta de comstackción de Eclipse (haga clic con el botón derecho en Proyecto -> Propiedades -> Ruta de comstackción de Java -> Bibliotecas). Declarle al sistema de comstackción que no agregue la biblioteca dll nativa al classpath Eclipse resolvió el problema.

puedes agregar el argumento vm en tu eclipse.

Ejemplo: -Djava.ext.dirs = cots_lib

donde cots_lib es su biblioteca de carpetas externas.

la forma más fácil sería usar el eclipse IDE en sí mismo. Ve al menú y establece la ruta de comstackción. Haga que apunte a la ruta del archivo JAVA JDK y JRE en su directorio. luego puede verificar la ruta de comstackción donde se establecerán los archivos comstackdos. en la carpeta bin por defecto sin embargo. Lo mejor sería permitir que eclipse maneje la ruta de comstackción y solo editarla de forma similar a la solución que se da arriba.