我试图运行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)
请帮助
答案 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
}
你可以尝试运行它,看看这对你有用吗?