有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在JavaAPI中运行GPR文件并运行模型GAMS

我有一个带有GMS扩展的模型。当我使用Gams studio运行该模型时,它运行得非常完美,我获得了预期的结果。 我曾尝试使用Gams IDE运行GMS模型,但我得到了很多错误,因此,我尝试了一些不同的方法。我已经打开了一个具有GPR扩展名的文件,之后我导入了GMS模型,当我运行该项目时,一切都很好。 我想我需要使用Gams Java API做同样的事情,但我不知道如何将GPR文件导入到我的工作区。 在这一刻,我只有下一个代码:

        GAMSWorkspace workspace = new GAMSWorkspace();
        workspace.setDebugLevel(DebugLevel.KEEP_FILES);
        GAMSJob jobGams = workspace.addJobFromFile("fileModelGms");
        jobGams.run();

当我运行该代码时,我得到一个错误:

GAMS process returns unsuccessfully with return code : 2 [there was a compilation error]. Check \_gams_java_gjo1.lst] for more details.


共 (2) 个答案

  1. # 1 楼答案

    我已经和Lutz的助手解决了这个问题。我需要在模型使用的输入中包含一个dir

    这是我的每行代码注释,以了解API Gams是如何工作的。我也使用了一个特定的工作区,因为当您运行一个新作业时,API会在temps文件中创建一个文件夹。我也使用了数据库GDX来运行我的模型

           //specific workspace information is created example: C:/Desktop/Workspace
            GAMSWorkspaceInfo workspaceInfo = new GAMSWorkspaceInfo();
            workspaceInfo.setWorkingDirectory("specificPathWorkspace");
            //A new workspace is created with workspaceInfo.
            GAMSWorkspace workspace = new GAMSWorkspace(workspaceInfo);
            workspace.setDebugLevel(DebugLevel.KEEP_FILES);
            //Options where you're going to set input file data.
            GAMSOptions options = workspace.addOptions();
            //Set path with input Data example: C:/Desktop/InputDate
            options.IDir.add("PathWithInputData");
            //Using a database where is data to be processed example: db.gdx
            GAMSDatabase gdxdb = workspace.addDatabaseFromGDX("db.gdx");
            // Creating a JOB to execute the model.
            GAMSJob jobGams = workspace.addJobFromFile(entradasModeloGamsDTO.getPathModeloGams());
            //Running model
            jobGams.run(options,gdxdb);
    
  2. # 2 楼答案

    gpr文件的格式只有GAMSIDE才能理解。您不能将其传递给任何API。如果从API调用模型而不是从GAMSIDE调用模型时出错,您可能已经使用IDE设置了某些选项,现在也应该通过API设置这些选项。不过,如果看不到确切的错误,就很难给出进一步的提示