无法执行 ortools 项目的 jar,Loader.loadNativeLibraries() 错误

问题描述

mvn install 后生成jar。无法在 Windows 上 Loader.loadNativeLibraries()。

ortools 的版本是 9.0.9048。我在窗户上用过。 我将以下两个 jar 添加到项目中,并按照 link 所述添加它们。

enter image description here

那么这两个 jar 就在 IDEA 的这里。

enter image description here

pom文件如下:

enter image description here

然后就可以在IDEA中正常运行程序了。但是当我 mvn install 生成 jar 文件并通过“java -jar jarfile.jar”运行 jar 时,它的错误为:

enter image description here

它说java.nio.file.NoSuchFileException: /BOOT-INF/lib/ortools-win32-9.0.jar!/win32-x86-64/,但是当我在winrar中打开jar时,它存在。>

enter image description here

有人知道原因吗?

解决方法

Mac 版本示例。

实际上在 Java 中使用 ortools 时需要两个 jar,ortools-java-9.0.9048.jarortools-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中的算法:

import com.google.ortools.Loader;
Loader.loadNativeLibraries();

它通常在 IDEA 中运行良好。但是当你将代码打包成jar文件时,会出现错误,因为Loader.loadNativeLibraries();ortools-darwin-x86-64-9.0.9048.jar中找不到该文件。

解决办法是解压ortools-darwin-x86-64-9.0.9048.jar,得到libjniortools.dylib的绝对路径(如果你用的是linux,会是类似libjniortools.so的文件和类似{{ 1}} 在 Windows 中)。并使用以下代码代替 libjniortools.dll

Loader.loadNativeLibraries();

通过这种方法打包代码后就可以使用了。

,

官方的神器是:
组:com.google.ortools,工件:ortools-java

https://search.maven.org/artifact/com.google.ortools/ortools-java/9.0.9048/jar