Java 在Mac OSX 10.9.3上打包JCUDA 0.6.0
我能够在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.dylibJava 在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
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,请查看:)