我在调试Java代码时遇到了一些问题。我有一个Rascal模块,我称之为链接Java方法。这个Java方法包含一些System.err.println语句,如下所示:https://github.com/usethesource/rascal/wiki/Error-Reporting。 但他们在哪里展示?当我从Rascal调试控制台执行Rascal代码并调用链接的Java方法时,不会显示消息。我甚至在打印后直接冲洗System.err,但没有运气。我在这里做错了什么?
此致 尼科
答案 0 :(得分:2)
System.err
很难,因为如果你没有从命令行控制台启动Eclipse,Eclipse会隐藏它。因此,您应该按https://github.com/usethesource/rascal/wiki/Error-Reporting上的建议使用evaluator.getStdErr()
。
首先扩展Rascal函数头以访问评估者上下文:
@reflect{need access to stderr}
@javaClass{path.to.MyClass}
java int myFunction(int myParam);
然后相应地更改Java中的界面并检索对错误流的引用:
public class MyClass {
public IValue myFunction(IInteger myParam, IEvaluatorContext ctx) {
ctx.getStdErr().println("Hello Rascal!");
}
}