Aparapi,java.lang.UnsatisfiedLinkError:libaparapi_x86 _...无法找到依赖库

时间:2017-04-19 10:50:31

标签: java gpu unsatisfiedlinkerror nativelibrary aparapi

我尝试在4台计算机上运行我的aparapi java程序。 2台计算机可以完美运行,但其他2台计算机可以运行Exception in thread "GPU" java.lang.UnsatisfiedLinkError: C:\Users\Wrusol\AppData\Local\Temp\libaparapi_x86_641952980562458381879.dll: Can't find dependent libraries at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(Unknown Source) at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.load0(Unknown Source) at java.lang.System.load(Unknown Source) at com.aparapi.natives.util.NativeUtils.loadLibraryFromJar(NativeUtils.java:100) at com.aparapi.natives.NativeLoader.load(NativeLoader.java:42) at com.aparapi.internal.opencl.OpenCLLoader.<clinit>(OpenCLLoader.java:43) at com.aparapi.internal.opencl.OpenCLPlatform.getOpenCLPlatforms(OpenCLPlatform.java:73) at com.aparapi.device.OpenCLDevice.listDevices(OpenCLDevice.java:458) at com.aparapi.internal.kernel.KernelManager.createDefaultPreferredDevices(KernelManager.java:203) at com.aparapi.internal.kernel.KernelManager.createDefaultPreferences(KernelManager.java:178) at com.aparapi.internal.kernel.KernelManager.<init>(KernelManager.java:46) at com.aparapi.internal.kernel.KernelManager.<clinit>(KernelManager.java:38) at com.aparapi.internal.kernel.KernelRunner.<init>(KernelRunner.java:170) at com.aparapi.Kernel.prepareKernelRunner(Kernel.java:2270) at com.aparapi.Kernel.execute(Kernel.java:2439) at com.aparapi.Kernel.execute(Kernel.java:2396) at com.aparapi.Kernel.execute(Kernel.java:2336) at com.mycompany.insurancecompanywithgpu.SimulationCounter.GPUSimulation(SimulationCounter.java:387) at com.mycompany.insurancecompanywithgpu.SimulationCounter$2.run(SimulationCounter.java:357) at java.lang.Thread.run(Unknown Source)

`

{{1}}

`

2 个答案:

答案 0 :(得分:1)

注意:我现在是Aparapi项目的领导者。这是Aparapi早期版本中存在的一个错误。如果您使用此处所述的1.5.0版,则可以使用http://aparapi.com/introduction/getting-started.html

如果您在maven central中使用Aparapi版本,则无需安装任何内容。假设您已经安装了OpenCL的任何实现,那么安装所需的一切。 Aparapi通过maven甚至是你的平台的dll / so文件提取依赖关系并自动加载它。

您也可以在自述文件中找到类似的信息:https://github.com/Syncleus/Aparapi

此处首次提到您遇到的错误,并列出了修复它的修补程序/版本,如果您需要该信息:https://github.com/Syncleus/aparapi/issues/52

答案 1 :(得分:-1)

您需要添加必要的本机库

对于Windows,这意味着.dll文件。在文件夹中找到不同的arch类型.dll,与jar文件位于同一级别。

通过命令行启动jar文件时,添加以下语句:

java "-Djava.library.path=lib" -jar your.jar

其中lib是包含本机.dlls的文件夹。 对于其他操作系统,aparapi站点上还提供了本机库。如果需要,也可以将它们放在lib文件夹中。