2014-06-09 42 views
4

我正在使用Maven设置Java项目。我已经设置了我的pom以包含所有依赖项,并使用相应的maven插件创建一个具有依赖项的jar。 RTI nddsjava库已经加载到我的Maven仓库服务器上,但由于某种原因,当我尝试在nddsjava中加载类时(例如com.rti.dds.domain.DomainParticipant)。关于如何创建一个完全独立运行的所有依赖项的jar的任何建议?如何将RTI nddsjava库包含在具有依赖关系的jar中?

回答

3

在运行时或打包期间是否遇到问题?您上面的陈述是您遇到的问题的症状。

RTI Connext的Java绑定依赖于3个本地库。因此,如果您遇到运行时问题,那么您需要将这些库打包为可交付成果的一部分。此外,需要在动态库加载路径(Windows上的PATH,* nix上的LD_LIBRARY_PATH,Mac OS X上的DYLD_LIBRARY_PATH)上提供这些库。

+0

我在运行时遇到了问题。所以我最终通过将ndds库放在Ubuntu中的LD_LIBRARY_PATH上来运行我的程序,就像你所建议的那样。有没有办法避免这样做?或者你最终不得不使用Java加载系统库? – jfoo

+2

我们的Java库需要加载本地库,请更正。所以这是目前解决问题的最实用的方法。你在使用OSGi还是其他容器?我们一直在考虑制作一个可以解决这个问题的OSGi包,方法是制作一个单独的.jar文件,其中包含嵌入其中的所有支持平台的本机库。这是否会对你的情况有所帮助? –

相关问题