Eclipse IDE不允许我在运行groovy脚本时提供输入

时间:2011-06-26 05:50:28

标签: eclipse groovy console-application

我试图运行groovy脚本。但不幸的是,脚本没有要求我输入和通过空指针异常。请帮助我为此做些什么。

static startShell() {

    client = new Client()

    // TODO add Windows compatibility check
    def historyFile = new File(System.getProperty("user.home"), "kitty.history")
    historyFile.createNewFile()

    def history = new History(historyFile)
    def reader = new ConsoleReader()

    reader.setBellEnabled(false)
    reader.setUseHistory(true)
    reader.setDefaultPrompt(PROMPT)
    reader.setHistory(history)
    reader.addCompletor(new SimpleCompletor(commands as String[]))

    LOOP: while (true) {
        def input = reader?.readLine().trim()

        if (input.length() == 0)
            continue

        if (["exit", "quit"].contains(input.tokenize().get(0)))
            break LOOP

        try {
            inputHandler(input)
        }
        catch (Exception e) {
            println e.getMessage()
        }

我还试过更换读卡器?与读者也。

错误:

kitty> Caught: java.lang.NullPointerException: Cannot invoke method trim() on null object
at org.apache.kitty.CmdShell.startShell(CmdShell.groovy:100)
at org.apache.kitty.CmdShell.main(CmdShell.groovy:79)

请帮助

2 个答案:

答案 0 :(得分:1)

我认为这与这个问题有关:

java.io.Console support in Eclipse IDE

基本上,Eclipse不支持用于运行应用程序的Console Reader - 尽管我很困惑Andrew Eisenberg如何在Eclipse中获得工作结果。

答案 1 :(得分:0)

您可以将程序简化为可以运行的程序吗?我尝试了一些非常简单的东西,并且能够在命令行和Eclipse内部运行它。

这是我创建的脚本:

导入jline.ConsoleReader

def reader = new ConsoleReader()    LOOP:while(true){         def input = reader?.readLine()。trim()

    if (input.length() == 0)
        continue

    if (["exit", "quit"].contains(input.tokenize().get(0)))
        break LOOP

    println "You said: " + input
}

你可以尝试运行它,看看这对你有用吗?