2013-02-28 6 views
1

Я использую внешнюю библиотеку C++ (gdal/ogr), которая создает файлы общих объектов, чтобы java мог использовать свои функции. Проблема в том, что я не совсем уверен, что я должен делать с этими .so-файлами и как я должен получить maven, чтобы использовать их при создании проекта. я нашел this учебник о том, как включить общие объектные файлыКак включить файлы общих объектов в проект maven

но когда я следую указаниям, я получаю эту ошибку:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860) 
    at java.lang.Runtime.loadLibrary0(Runtime.java:845) 
    at java.lang.System.loadLibrary(System.java:1084) 
    at org.lwjgl.Sys$1.run(Sys.java:73) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.lwjgl.Sys.doLoadLibrary(Sys.java:66) 
    at org.lwjgl.Sys.loadLibrary(Sys.java:95) 
    at org.lwjgl.Sys.<clinit>(Sys.java:112) 
    at org.lwjgl.opengl.Display.<clinit>(Display.java:135) 
    at com.googlecode.nativedependencies.example.App.main(App.java:22) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 

Для контекста на соответствующем .so файлов и как они генерируются , см. следующее link о компиляции gdal/ogr с привязками java.

Я просто ищу наиболее надежный способ включить эти файлы, чтобы я мог в максимально возможной степени использовать библиотеку gdal/ogr в java, как и любую другую обычную java-библиотеку.

ответ

0

Я думаю, что этот плагин поможет вам построить проект java. Но вам все равно нужно сообщить JVM, где находятся собственные файлы.

См How to add native library to “java.library.path” with Eclipse launch (instead of overriding it) или просто один How to Load a Java Native/Shared Library (.so)

Вам необходимо переопределить (в той же консоли, прежде чем открыть затмение или запустить Java программу)

export LD_LIBRARY_PATH = "${workspace_loc}/lib:${LD_LIBRARY_PATH}" 

или добавить команду Java:

-Djava.library.path="${workspace_loc:project}\lib;${env_var:PATH}"