如何在Eclipse中编译文件和运行Jshop2?

How to compile documents and run Jshop2 in Eclipse?

我是一名从中国开始学习SHOP2的学生。 我的老师告诉我 运行 JSHOP2 在 Eclipse.Now 我可以 运行 原始 zenotravel 问题并生成 GUI 和 plans.Likewise,我想把其他领域和问题放到 SHOP2 并制定计划. 但问题是我不知道如何编译它们,我的老师只让我 运行 Internaldomain 中的主要功能但它不能 succeed.Follow 是原始代码:

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

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

这段代码可以 运行 zenotravel.Then 我把域和问题命名为pfile1和 tdepots 分别入SHOP2 folder.Change 代码为:

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

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

}

它警告 "domainpdfiles cannot be resolved to a variable"。

        //--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 是主函数 above.And 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”却出现错误:"the main class Interdomain can't be found or loaded".但我已经准确设置了class路径并且Zenotravel规划可以run.So如何 我在哪里可以使用命令? 而Eclipse中括号"compile()"写的是什么?

我也不熟悉JAVA所以如果有具体的instruction.Thanks就更好了

请描述您要构建什么,它应该做什么,预期的最终结果是什么。

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

如果您正在尝试构建需要 PDDL-based 规划引擎作为其组件之一的软件解决方案,也许您可​​以使用其中一种可用的实现:https://nergmada.github.io/pddl-reference/guide/whatisplanner.html#list-of-planners

如果您尝试使用 Eclipse IDE 在 Java 中构建您自己的计划引擎,您可能需要一个 Java-based 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)和 class 名称(InternalDomain)区分大小写,因此请确保按照文档输入它们。这可能就是您获得 "main class not found error".

的原因

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

make 文件展示了如何在发行版中执行 out-of-the-box 示例:

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

这对你有用吗?