Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Mac OSX 10.9.3上打包JCUDA 0.6.0_Java_Macos_Jar_Dylib_Jcuda - Fatal编程技术网

Java 在Mac OSX 10.9.3上打包JCUDA 0.6.0

Java 在Mac OSX 10.9.3上打包JCUDA 0.6.0,java,macos,jar,dylib,jcuda,Java,Macos,Jar,Dylib,Jcuda,我能够在MacOSX 10.9.3 64位系统()上编译JCuda的本机0.6.0库。不幸的是,我不够聪明,不能把所有东西都装进罐子里。有人能帮我吗?我创建了一个Netbeans项目,并将所有提供的JavaSRC文件夹的内容复制到其中。然后我把所有的东西都装进一个罐子里。然后,我使用Jarsplice 0.4.0尝试构建一个包含下面列出的所有本机库文件(第一个.a文件除外)的Jar文件。不幸的是,当我将生成的jar链接到我的项目中并运行它时,由于libJCudaRuntime-apple-x86

我能够在MacOSX 10.9.3 64位系统()上编译JCuda的本机0.6.0库。不幸的是,我不够聪明,不能把所有东西都装进罐子里。有人能帮我吗?我创建了一个Netbeans项目,并将所有提供的JavaSRC文件夹的内容复制到其中。然后我把所有的东西都装进一个罐子里。然后,我使用Jarsplice 0.4.0尝试构建一个包含下面列出的所有本机库文件(第一个.a文件除外)的Jar文件。不幸的是,当我将生成的jar链接到我的项目中并运行它时,由于libJCudaRuntime-apple-x86_64.jnilib丢失,所以它无法工作

先谢谢你 拉德克

“我的库”文件夹包含: Libjni.a libJCublas-apple-x86_64.dylib libJCublas2-apple-x86_64.dylib libJCudaDriver-apple-x86_64.dylib libJCudaRuntime-apple-x86_64.dylib libJCufft-apple-x86_64.dylib libJCurand-apple-x86_64.dylib
libJCusparse-apple-x86_64.dylib

这里也要回答这个问题:本机库不能直接打包到JAR中(或者更确切地说:如果它们只包含在JAR中,则当前无法加载)

尽管JCuda
LibUtils
类的基础结构基本上提供了实现这一点的可能性,但它并没有得到“正式”支持。原因之一是,只有当所有操作系统的所有本机库都可用(32位和64位)时,这才有意义。这样就可以将所有这些库放在一个JAR中,并在运行时透明地解包和加载它们


通常需要一段时间,直到所有本机库都可用。这一问题可以通过以下方式得到缓解:管理对本机库的依赖关系。

要加载库,您需要将它从jar提取到操作系统实际可以加载的地方(文件系统)。我看到的一种常用方法是在jar中为库使用getResource,然后将其复制到系统temp并从那里加载(使用限定路径)。有些甚至在同一个jar中有多个操作系统的库,并选择适合该操作系统的库。我根据“所有库的源代码”中提供的源代码进行编译。您可以在中看到文件结构。请注意,还有包含src文件夹的.*Java文件夹,其中包含Java文件。我基本上想要的是将包含所有编译的Java源代码和本机库的jar打包在一个jar中。所以我可以把它放在我的本地存储库中。@RayDeeA,感谢Marco13提到我的项目,我刚刚添加了Mac OS X libs,请查看:)