我试着在4台电脑上运行我的aparapi java程序。2台计算机可以正常运行,但另外2台计算机抛出java.lang.UnsatisfiedLinkError
`
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)`
发布于 2018-03-05 03:23:46
注:我是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
发布于 2017-09-06 22:27:50
您需要添加必要的本地库
对于windows,这意味着.dll文件。在与您的jar文件相同级别的文件夹中找到不同的arch类型.dlls。
通过命令行启动jar-file时,添加以下语句:
java "-Djava.library.path=lib" -jar your.jar其中,lib是包含本机.dlls的文件夹。对于其他操作系统,aparapi站点上也提供了本地库。如果需要,只需将它们也放入您的lib文件夹。
https://stackoverflow.com/questions/43493597
复制相似问题