问题描述
mvn install 后生成jar。无法在 Windows 上 Loader.loadNativeLibraries()。
ortools 的版本是 9.0.9048。我在窗户上用过。 我将以下两个 jar 添加到项目中,并按照 link 所述添加它们。
那么这两个 jar 就在 IDEA 的这里。
pom文件如下:
然后就可以在IDEA中正常运行程序了。但是当我 mvn install 生成 jar 文件并通过“java -jar jarfile.jar”运行 jar 时,它的错误为:
它说java.nio.file.NoSuchFileException: /BOOT-INF/lib/ortools-win32-9.0.jar!/win32-x86-64/,但是当我在winrar中打开jar时,它存在。>
有人知道原因吗?
解决方法
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
中的算法:
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