6

我正在尝试使用 LTE-CIVIL,我刚刚获得了库并将 no-swt.jar 和本机 win32 .jar 添加到我在 Eclipse 中的项目中,我收到了这个错误。知道如何解决此错误。我只是想运行项目附带的示例代码。

Exception in thread "main" com.lti.civil.CaptureException:java.lang.UnsatisfiedLinkError: no civil in java.library.path at com.lti.civil.impl.jni.NativeCaptureSystemFactory.createCaptureSystem(NativeCaptureSystemFactory.java:24)at com.lti.civil.test.CaptureSystemTest.main(CaptureSystemTest.java:33)Caused by: java.lang.UnsatisfiedLinkError: no civil in java.library.path at java.lang.ClassLoader.loadLibrary(Unknown Source)at java.lang.Runtime.loadLibrary0(Unknown Source) at java.lang.System.loadLibrary(Unknown Source)at com.lti.civil.impl.jni.NativeCaptureSystemFactory.createCaptureSystem(NativeCaptureSystemFactory.java:21)
4

1 回答 1

3

当您的应用程序使用任何本机库或 dll 时,会出现此错误。要解决此问题,您必须添加 dll 的 java.library.path 变量。就像如果您的本机 dll 在 C:/Work/lti-civil/native/win32-x86 中预先存在,那么您必须在使用任何民用类之前添加以下代码

    System.setProperty( "java.library.path", "C:/Work/lti-civil/native/win32-x86/" );
    Field fieldSysPath = ClassLoader.class.getDeclaredField( "sys_paths" );
    fieldSysPath.setAccessible( true );
    fieldSysPath.set( null, null );

它将您的 dll 加载到您的应用程序中。

于 2013-02-07T08:43:05.853 回答