2

我正在使用一个创建共享对象文件的外部 c++ 库(gdal/ogr),以便 java 可以利用它的功能。问题是我不确定我应该如何处理这些 .so 文件,以及我应该如何让 maven 在构建项目时使用它们。我发现this tutorial on how to include shared object files

但是当我按照给出的指示进行操作时,我得到了这个错误:

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 文件的上下文及其生成方式,请参阅以下有关使用 java 绑定编译 gdal/ogr 的链接

我只是在寻找包含这些文件的最强大的方法,以便我可以尽可能地在 java 中使用 gdal/ogr 库,就像使用任何其他普通 java 库一样。

4

1 回答 1

0

我认为这个插件可以帮助您构建 java 项目。但是您仍然需要通知 JVM 本地文件在哪里。

请参阅如何通过 Eclipse 启动(而不是覆盖它)将本机库添加到“java.library.path”或简单的如何加载 Java 本机/共享库 (.so)

您需要覆盖(在打开 eclipse 或运行 java 程序之前在同一个控制台中)

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

或添加到 java 命令:

-Djava.library.path="${workspace_loc:project}\lib;${env_var:PATH}"
于 2013-03-01T07:31:24.830 回答