如何在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
这对你有用吗?
我是一名从中国开始学习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
这对你有用吗?