2012-01-31 38 views
0

我有几个'so'文件,我需要在maven java项目中加载而不必使用System.loadLibrary()方法。如何在Maven中自动加载本机依赖关系?

我已经复制了src/main/resources /文件夹中的so文件。我必须在pom.xml中提及它们吗?

我该怎么做?

我现在收到此错误。在线程 “主要” java.lang.UnsatisfiedLinkError中

例外:tcl.lang.Interp.commandComplete(Ljava /朗/字符串;)z

回答

0

你说的装载是什么意思? Maven是一个构建系统。它会将文件放在你的jar文件中,并将其放在src/main/resources/中。但它不会在运行时影响您的代码。所以它取决于你的代码在运行时加载库。

0

听起来像你在loadLibrary中的路径是错误的。您知道src/main/resources中的这些文件将被maven复制到目标/类文件夹中,并且可以通过getClass()。getResourcesAsStream()获得...这可能有助于使用loadLibrary()...

ClassLoader cl = getClass().getClassLoader(); 
url = cl.getResource(name); 
if(url != null) { 
    file = new File(url.getFile()); 
} 
+0

我应该在代码中加载本机库吗?它不是由JVM完成的吗? – user691197 2012-02-06 09:27:15