在 Windows 10 (Intellij IDEA) 上使用 gradle 项目安装 Google or-tools
Installing Google or-tools with gradle project on Windows 10 (Intellij IDEA)
是否可以在 IntelliJ Idea 上安装该库?
还是我必须使用 Visual Studio 2017?
如果可以,我该如何安装?我发现 google 文档令人困惑。
我们提供预构建的二进制文件
cf https://developers.google.com/optimization/install/java/windows#installing-or-tools 所以你不需要 visual studio 只消耗它...
然后要在 Gradle 中使用它,您需要提取 lib/com.google.ortools.jar
、lib/protobuf.jar
、JNI 文件 jniortools.dll
,这可能还取决于 ortools.lib
.
查看 Makefile 规则 rjava
以了解要设置的参数并尝试将其添加到您的 gradle 项目...
像这样:
javac -d output_dir -cp lib/com.google.ortools.jar;lib/protobuf.jar YourFile.java
java -Djava.library.path=lib -cp output_dir;lib/com.google.ortools.jar;lib/protobuf.jar YourFile
所以你一定知道class路径和java库路径在Gradle中是如何管理的....
以防其他人来到这里,这是我的构建配置和 运行 OR 工具与 Gradle。
首先,我有一个顶级项目,其中包含与应用程序相关的代码,名为 suite
,还有一个模块,其中我分离了所有与 OR-Tools 相关的代码,名为 optimization
.在 optimization
模块中,我有一个文件夹 lib
,其中包含以下文件(不确定您是否需要所有这些文件):
com.google.ortools.jar
libcvrptw_lib.so
libdimacs.so
libjniortools.so
libortools.so
如您所见,此处没有 protobuf.jar
- 稍后会出现。然后我将以下内容添加到我现有的顶级 build.gradle
文件中:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.6'
}
...
}
apply plugin: 'application'
applicationDefaultJvmArgs = ["-Djava.library.path=optimization/lib"]
mainClassName = 'com.package.name.MainClass'
请注意,对于 applicationDefaultJvmArgs
,您必须更改 lib
文件夹的路径。当然,将 mainClassName
更新为您的主要 class.
最后,在我的 optimization
模块的 build.gradle
中,我添加了以下依赖项:
dependencies {
compile files('lib/com.google.ortools.jar')
compile 'com.google.protobuf:protobuf-java:3.0.0'
...
}
上面从 lib
文件夹编译 ortools.jar
并从 mavenCentral
.
下载 protobuf-java
库
PS。不要忘记在访问 OR 工具的 Java class 中加载 jniortools
库:
static {
System.loadLibrary("jniortools");
}
显然,您不需要子模块来完成这项工作——这只是我的实现。希望这会有所帮助。
是否可以在 IntelliJ Idea 上安装该库?
还是我必须使用 Visual Studio 2017?
如果可以,我该如何安装?我发现 google 文档令人困惑。
我们提供预构建的二进制文件 cf https://developers.google.com/optimization/install/java/windows#installing-or-tools 所以你不需要 visual studio 只消耗它...
然后要在 Gradle 中使用它,您需要提取 lib/com.google.ortools.jar
、lib/protobuf.jar
、JNI 文件 jniortools.dll
,这可能还取决于 ortools.lib
.
查看 Makefile 规则 rjava
以了解要设置的参数并尝试将其添加到您的 gradle 项目...
像这样:
javac -d output_dir -cp lib/com.google.ortools.jar;lib/protobuf.jar YourFile.java
java -Djava.library.path=lib -cp output_dir;lib/com.google.ortools.jar;lib/protobuf.jar YourFile
所以你一定知道class路径和java库路径在Gradle中是如何管理的....
以防其他人来到这里,这是我的构建配置和 运行 OR 工具与 Gradle。
首先,我有一个顶级项目,其中包含与应用程序相关的代码,名为 suite
,还有一个模块,其中我分离了所有与 OR-Tools 相关的代码,名为 optimization
.在 optimization
模块中,我有一个文件夹 lib
,其中包含以下文件(不确定您是否需要所有这些文件):
com.google.ortools.jar
libcvrptw_lib.so
libdimacs.so
libjniortools.so
libortools.so
如您所见,此处没有 protobuf.jar
- 稍后会出现。然后我将以下内容添加到我现有的顶级 build.gradle
文件中:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.6'
}
...
}
apply plugin: 'application'
applicationDefaultJvmArgs = ["-Djava.library.path=optimization/lib"]
mainClassName = 'com.package.name.MainClass'
请注意,对于 applicationDefaultJvmArgs
,您必须更改 lib
文件夹的路径。当然,将 mainClassName
更新为您的主要 class.
最后,在我的 optimization
模块的 build.gradle
中,我添加了以下依赖项:
dependencies {
compile files('lib/com.google.ortools.jar')
compile 'com.google.protobuf:protobuf-java:3.0.0'
...
}
上面从 lib
文件夹编译 ortools.jar
并从 mavenCentral
.
protobuf-java
库
PS。不要忘记在访问 OR 工具的 Java class 中加载 jniortools
库:
static {
System.loadLibrary("jniortools");
}
显然,您不需要子模块来完成这项工作——这只是我的实现。希望这会有所帮助。