如何在Eclipse中编译文档并运行Jshop2?

时间:2019-06-18 17:09:42

标签: eclipse pddl

我是一名从中国学习SHOP2的学生。     我的老师告诉我在Eclipse中运行JSHOP2,现在我可以运行原始的zenotravel问题并生成GUI和计划了,同样,我想将其他领域和问题放到SHOP2中并生成计划。     但是问题是我不知道如何编译它们,而我的老师只要求我在Internaldomain中运行main函数,但无法成功。以下是原始代码:

 public static void main(String[] args) throws Exception
 {
    //compile();    
    // compile(args);

    //-- run the planning algorithm
    run(args);   
 }

这段代码可以运行zenotravel,然后我将域和问题命名为pfile1和 将tdepot分别放入SHOP2文件夹。将代码更改为:

{
compile(domaintdepots);    
// compile(args);

//-- run the planning algorithm
run(args);

}

它警告“ domainpdfile无法解析为变量”。

        //--compile();    
         compile(args);

        //-- run the planning algorithm
        //run(args);    

事实证明:

"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    at JSHOP2.InternalDomain.compile(InternalDomain.java:748)
    at JSHOP2.InternalDomain.main(InternalDomain.java:720)"

720是上面的主要功能。748是编译功能:

public static void compile(String[] args) throws Exception
 {
        //-- The number of solution plans to be returned.
        int planNo = -1;

        //-- Handle the number of solution plans the user wants to be returned.
        if (args.length == 2 || args[0].substring(0, 2).equals("-r")) {
          if (args[0].equals("-r"))
            planNo = 1;
          else if (args[0].equals("-ra"))
            planNo = Integer.MAX_VALUE;
          else try {
            planNo = Integer.parseInt(args[0].substring(2));
          } catch (NumberFormatException e) {
          }
        }

最后,根据朋友的建议,我将两个pddls放入src文件夹,并在CMD中使用“ java Jshop2.InternalDomain domaintdepots”,但出现了错误:“找不到或加载主类Interdomain “。但是我已经正确设置了上课路径,Zenotravel规划可以运行。 在哪里可以使用该命令?   Eclipse中括号“ compile()”中写的是什么?

我也不熟悉JAVA,所以最好有具体的指导。非常感谢。

1 个答案:

答案 0 :(得分:0)

请描述您要构建的内容,应做的工作以及预期的最终结果。

如果您确实拥有有效的PDDL域和问题文件,则可以尝试使用 File> Load 菜单将它们加载到在线http://editor.planning.domains/编辑器中。然后按 Solve 按钮,并确认哪个文件是域,哪个是问题。如果PDDL模型有效(并且基础求解器可以处理需求),您将获得一个计划。

如果您尝试构建一个需要基于PDDL的计划引擎作为其组件之一的软件解决方案,则可以使用以下可用的实现之一:https://nergmada.github.io/pddl-reference/guide/whatisplanner.html#list-of-planners

如果您尝试使用Eclipse IDE在Java中构建自己的计划引擎,则可能需要基于Java的PDDL解析器。这是一个教程,说明如何为此使用pddl4j:

https://github.com/pellierd/pddl4j/wiki/A-tutorial-to-develop-your-own-planner

如果您特别需要使用Jshop2,则从其文档(http://www.cs.umd.edu/projects/shop/description.html)看来,您确实需要使用以下命令将域和问题PDDL编译为Java代码:

java JSHOP2.InternalDomain domainFileName

java JSHOP2.InternalDomain -r problemFileName

6月19日编辑

Java包名称(例如JSHOP2)和类名称(InternalDomain)区分大小写,因此请确保根据文档键入它们。这可能就是为什么您会收到“找不到主类错误”的原因。

很难说748和720行确切对应什么,因为在GitHub存储库https://github.com/mas-group/jshop2/blob/master/src/JSHOP2/InternalDomain.java中,代码与您的代码不同。您可以在问题中指出确切的几行吗?

make文件显示了如何在发行版中执行开箱即用的示例:

cd examples\blocks
java JSHOP2.InternalDomain blocks
java JSHOP2.InternalDomain -r problem300

对您有用吗?