相关疑难解决方法(0)

使用Maven在jar中包含依赖项

有没有办法强制maven(2.0.9)在一个jar文件中包含所有依赖项?

我将一个项目构建到一个jar文件中.我希望将依赖项中的类复制到jar中.

更新:我知道我不能在jar文件中包含一个jar文件.我正在寻找一种方法来解压缩指定为依赖项的jar,并将类文件打包到我的jar中.

java maven-2 packaging jar

329
推荐指数
9
解决办法
40万
查看次数

使用Maven管理本机库

是否可以在maven下管理本机库(.so)?

我们使用一些依赖于外部本机库的jar,所以我正在寻找一些方法来对它们进行mavenize.

谢谢.

maven-2 native

6
推荐指数
1
解决办法
2719
查看次数

在Mac OS X上加载JNI lib?

背景

所以我试图在运行时在Mac OS X 上将jnilib(特别是JOGL)加载到Java中.我一直在关注相关的Stack Overflow问题:

我的最终目标是将特定于平台的JOGL文件打包到JAR中,并将它们解压缩到临时目录中并在启动时加载它们.我回过头来尝试使用硬编码路径加载JOGL:

    File f = new File("/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/libjogl.jnilib");
    System.load(f.toString());
    f = new File ("/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/libjogl_awt.jnilib");
    System.load(f.toString());
Run Code Online (Sandbox Code Playgroud)

尝试使用JOGL API时出现以下异常:

    Exception in thread "main" java.lang.UnsatisfiedLinkError: no jogl in java.library.path
Run Code Online (Sandbox Code Playgroud)

但是当我java.library.path通过添加以下JVM选项指定时:

    -Djava.library.path="/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/" 
Run Code Online (Sandbox Code Playgroud)

一切正常.


是否可以System.load在Mac OS X上使用(或其他变体)作为在运行时调用的-Djava.library.path的替代?

java macos java-native-interface jogl

6
推荐指数
1
解决办法
1万
查看次数

Maven 和本机库

我在我的java项目中使用maven,我不明白如何添加本地库。在我的非 Maven 项目中,我是通过 CLASSPATH 完成的。我在当前的 java 项目中使用 NetBeans 和 maven。

java java-native-interface maven-2 netbeans native

4
推荐指数
1
解决办法
1万
查看次数

在Glassfish Java EE应用程序上部署时,何处放置共享库.so用于JNI本机调用

我有一个运行Java EE 6的Glassfish 3.1.1 Web应用程序.我的一个类具有本机库依赖项.我正在使用JNI来使用这种原生方法.该过程的一部分涉及创建共享库.so文件.在我的一个Java类中,将有一个System.Loadlibrary("library"); 调用引用该library.so文件.

我的问题是,我应该在哪里放置此共享库以及它引用的本机代码,以便在Glassfish上访问和使用此JNI功能.

我需要调用几个C++程序,这些程序可以在Glassfish托管的机器上的任何位置移动.我应该把它们放在domain1/ext文件夹中吗?将它们作为本机库添加到构建路径中的jar.这是怎么做到的?

java java-native-interface native-methods glassfish java-ee

4
推荐指数
1
解决办法
4935
查看次数