我有一个需要添加到java.library.path的本机库.使用JVM参数-Djava.library.path = path ...我可以根据需要设置路径.
我的问题是我的其他库(pentaho报告)基于默认的java.library.path(包括系统目录等)搜索字体,手动设置会覆盖默认路径.
那么:如何将路径条目添加到默认的java.library.path而不是覆盖它(这似乎是用-Djava.library.path完成的)?(我不想手动添加默认路径,这对于部署来说不是很好)
编辑:抱歉缺少详细信息; 我正在使用Eclipse.(部署是使用JNLP完成的,我可以在资源下使用 nativelib)
我买了第三方Java库,其中包含一个JAR文件和两个DLL文件.我编写了自己的Java程序来调用第三方JAR文件.现在我的问题是如何将我的所有代码打包成一个包含我所有代码和第三方JAR和DLL的JAR文件?
我知道SWT就是这种情况.在swt.jar包括DLL文件,但我不知道如何做到这一点,以及如何使其正常工作.
我有一个在Maven中管理的项目,它有一些本机依赖项(LWJGL).
一切都在开发中工作正常,但现在我想设置Maven,以便它可以构建一个可以重新分发的可运行的.jar文件.特别是,我希望用户可以非常轻松地运行应用程序,而无需乱搞库路径或解压缩本机库等.
目前我能够构建一个包含所有依赖项的.jar文件,但是如果我运行它(不出所料)我得到一个不满意的链接错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.libr
ary.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at org.lwjgl.Sys$1.run(Sys.java:73)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
at org.lwjgl.Sys.loadLibrary(Sys.java:95)
at org.lwjgl.Sys.<clinit>(Sys.java:112)
at org.lwjgl.opengl.Display.<clinit>(Display.java:132)
at glaze.TestApp.start(TestApp.java:10)
at glaze.TestApp.main(TestApp.java:31)
Run Code Online (Sandbox Code Playgroud)
显然,我可以通过手动安装本机库并运行jar来使其工作,java -Djava.library.path=/path/to/libs但这不是我期望用户做的事情.
这是pom.xml,如果它是相关的:https://github.com/mikera/glaze/blob/master/pom.xml
可以设置Maven,以便创建一个包含本机依赖项的可运行.jar,并在双击时成功运行?