安装mvn后生成jar。无法在Windows上加载Loader.loadNativeLibraries()。
ortools的版本是9. 0. 9048,我在windows上使用过,我在项目中添加了下面两个jar,我像link所说的那样添加了它们。
然后两个jar是在这里的想法。
pom文件如下所示:
然后我可以在IDEA中正常运行程序,但是当我mvn install生成jar文件并通过'java-jar jarfile.jar'运行jar时,错误如下:
它说的是java.nio.file.没有这样的文件异常:/BOOT-INF/lib/或tools-win32 -9.0.jar!/win32-x86-64/,但是当我在winrar中打开这个jar时,它是存在的。
有人知道原因吗?
3条答案
按热度按时间zsbz8rwp1#
Mac版本的示例。
实际上在Java中使用ortools时需要两个jar,
ortools-java-9.0.9048.jar
和ortools-darwin-x86-64-9.0.9048.jar
。这两个jar是从官方文件中解压缩的,它们位于主目录中。ortools-java-9.0.9048.jar
是一个算法包,你不需要太在意,给你的程序添加依赖是你需要做的。关键是
ortools-darwin-x86-64-9.0.9048.jar
,下面的代码就是读取这个jar,最终调用ortools-java-9.0.9048.jar
中的算法:通常在IDEA中运行良好,但当您将代码打包到jar文件时,由于
Loader.loadNativeLibraries();
无法在ortools-darwin-x86-64-9.0.9048.jar
中找到该文件而发生错误。解决方案是解压缩
ortools-darwin-x86-64-9.0.9048.jar
并获得libjniortools.dylib
的绝对路径(如果使用的是Linux,则在Windows中它将是一个类似于libjniortools.so
的文件和一个类似于libjniortools.dll
的文件),并使用以下代码代替Loader.loadNativeLibraries();
它将在您使用此方法打包代码后工作。
g52tjvyc2#
官方文物有:
群组:com.google.或工具,人工制品:奥尔图尔斯- java
https://search.maven.org/artifact/com.google.ortools/ortools-java/9.0.9048/jar
mzmfm0qo3#
对于macOS,您可以尝试以下代码,类似于@Muz解决方案