IntelliJ IDEA 配置 Gurobi(Java 8 环境)

适用:JDK 1.8 + Gurobi 13(已验证 gurobi.jar 字节码版本为 Java 8,无需升级 JDK)

假设 Gurobi 装在 C:\gurobi1300\win64(默认路径;若不同请替换)

第 0 步:确认前提

  • 已安装 Gurobi 13,目录里有 C:\gurobi1300\win64\lib\gurobi.jar

  • 已激活 license(有 gurobi.lic 文件)。没有的话先用命令行激活:

    复制代码
    C:\gurobi1300\win64\bin\grbgetkey.exe <license-id>

第 1 步:新建 / 打开项目

  • 新建 :File → New → Project → 选「Java」,SDK 选你的 Java 8,Next → 起个项目名(比如 GurobiTest)→ Create。
  • 打开已有 :File → Open → 选择放 .java 文件的文件夹。

第 2 步:设置 Project SDK 为 Java 8

File → Project Structure...(快捷键 Ctrl+Alt+Shift+S

  1. 左侧选 Project
    • SDK :选 Java 1.8(若下拉没有,点 Add SDK → JDK,定位到 Java 8 安装目录)。
    • Language level :选 8
  2. 点 OK。

第 3 步:把 gurobi.jar 加进依赖(关键)

仍在 File → Project Structure...

  1. 左侧选 Modules → 右侧 Dependencies 标签页。
  2. 点下方 +JARs or directories...
  3. 选择 C:\gurobi1300\win64\lib\gurobi.jar → 确定。
  4. 看到 gurobi.jar 出现在依赖列表里 → 点 OK

此时代码里写 import com.gurobi.gurobi.*; 应该不再报红。

⚠️ 包名是 com.gurobi.gurobi(Gurobi 11/12/13),不是旧教程的 gurobi


第 4 步:配置运行(最关键,决定能不能跑起来)

Run → Edit Configurations...

  1. 点左上 + → 选 Application

  2. Name :随便,比如 Run GurobiTest

  3. Main class :点一下选 GurobiTest(或你的主类)。

  4. 点上方 Modify options (或 Alt+M)→ 勾选 VM optionsEnvironment variables,让这两个输入框显示出来。

  5. 填入:

    VM options

    复制代码
    -Djava.library.path=C:/gurobi1300/win64/bin

    (用正斜杠 /,避免反斜杠转义问题)

    Environment variables

    复制代码
    GRB_LICENSE_FILE=C:/gurobi1300/win64/bin/gurobi.lic

    (这是 license 文件的真实路径;若 license 已放在用户主目录,这一项可省略)

  6. OK 保存。


第 5 步:运行验证

把下面的代码存为 GurobiTest.java(放在 src 下),点右上绿色三角运行:

java 复制代码
import com.gurobi.gurobi.*;

public class GurobiTest {
    public static void main(String[] args) {
        try {
            GRBEnv env = new GRBEnv("gurobi_test.log");
            GRBModel model = new GRBModel(env);

            GRBVar x = model.addVar(0, 1, 0, GRB.BINARY, "x");
            GRBVar y = model.addVar(0, 1, 0, GRB.BINARY, "y");
            GRBVar z = model.addVar(0, 1, 0, GRB.BINARY, "z");

            GRBLinExpr obj = new GRBLinExpr();
            obj.addTerm(1.0, x); obj.addTerm(1.0, y); obj.addTerm(2.0, z);
            model.setObjective(obj, GRB.MAXIMIZE);

            GRBLinExpr c1 = new GRBLinExpr();
            c1.addTerm(1.0, x); c1.addTerm(2.0, y); c1.addTerm(3.0, z);
            model.addConstr(c1, GRB.LESS_EQUAL, 4.0, "c1");

            GRBLinExpr c2 = new GRBLinExpr();
            c2.addTerm(1.0, x); c2.addTerm(1.0, y);
            model.addConstr(c2, GRB.GREATER_EQUAL, 1.0, "c2");

            model.optimize();

            System.out.println("Status    : " + model.get(GRB.IntAttr.Status));
            System.out.println("Objective : " + model.get(GRB.DoubleAttr.ObjVal));
            System.out.println("x=" + x.get(GRB.DoubleAttr.X)
                    + " y=" + y.get(GRB.DoubleAttr.X)
                    + " z=" + z.get(GRB.DoubleAttr.X));
            model.dispose();
            env.dispose();
        } catch (GRBException e) {
            System.out.println("Gurobi error: code=" + e.getErrorCode()
                    + ", msg=" + e.getMessage());
        }
    }
}

看到输出 Objective : 3.0x=1.0 y=0.0 z=1.0 就成功了。


常见报错对照

报错 原因 解决
package com.gurobi.gurobi does not exist 第 3 步 jar 没加对 重新加 gurobi.jar 到 Dependencies
cannot find symbol / 红色波浪线 同上,或缺包名 检查 import 和依赖
No Gurobi license found license 没找到 第 4 步的 GRB_LICENSE_FILE 填对路径;或把 gurobi.lic 复制到 C:\Users\<用户名>\
UnsatisfiedLinkError: ...gurobi...dll 第 4 步 VM options 没配 补上 -Djava.library.path=C:/gurobi1300/win64/bin
Unsupported major.minor version 52.0 之类 JDK 太旧 Java 8 正好是 52,不会有此问题;若出现说明用了更低版本,升级到 Java 8+

一句话总结

IDEA 里配 Gurobi = 设 JDK → 加 gurobi.jar → VM options 填 java.library.path → 环境变量填 GRB_LICENSE_FILE。这四样齐了就能跑。