Java Grobi.grbeException:未找到gurobi许可证

Java Grobi.grbeException:未找到gurobi许可证,java,eclipse,gurobi,Java,Eclipse,Gurobi,我最近在eclipse中使用了gurobi(java),我确信我已经成功获得了许可证,当我使用gurobi解决LP问题时,一切都很好: public LP(int n, int[]s, int[][]b) throws GRBException { ... env = new GRBEnv("LPRelaxation.log"); model = new GRBModel(env); } 然后我将QP部件添加到我的程序中,出现错误: public QP() throws

我最近在eclipse中使用了gurobi(java),我确信我已经成功获得了许可证,当我使用gurobi解决LP问题时,一切都很好:

public LP(int n, int[]s, int[][]b) throws GRBException
{
    ...
    env = new GRBEnv("LPRelaxation.log");
    model = new GRBModel(env);
}
然后我将QP部件添加到我的程序中,出现错误:

public QP() throws GRBException
{
    env = new GRBEnv("LPRelaxation.log");
    model = new GRBModel(env);
}
错误:

Exception in thread "main" gurobi.GRBException: No Gurobi license found (user asus, host OWEN-ASUS, hostid fccf6a77)
at gurobi.GRBEnv.<init>(GRBEnv.java:20)
at methods.QP.<init>(QP.java:16)
....
线程“main”gurobi.grbeexception中的异常:未找到gurobi许可证(用户asus,主机OWEN-asus,主机ID fccf6a77)
在gurobi.GRBEnv.(GRBEnv.java:20)
at methods.QP.(QP.java:16)
....

将环境变量GRB_LICENSE_FILE设置为许可证密钥文件的路径

参考:

除了引导您(我刚刚链接了一些基于mac的文档;搜索您的操作系统的文档)之外,我们在这里做的事情不多。似乎我使用
env=new GRBEnv()
的次数太多了,所以它导致了一个问题,现在我已经更改了它,它再次工作,谢谢!现在问题很清楚了:在使用完Gurobi环境后,我没有使用
env.dispose()
。这样我可能会打开太多的环境并导致问题。官方文档是。通常,每个程序应该使用一个Gurobi环境(GRBEnv对象)。你可以为一个Gurobi环境创建多个模型(GRBModel对象)。是的,这很有意义!我以前没有想到过这种方法,现在它起作用了。