2011-06-26 8 views
0

groovyスクリプトを実行しようとしました。しかし残念ながら、スクリプトは入力とNULLポインタ例外を私に求めていません。私がこのために必要なことを手伝ってください。Eclipse IDEは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

あなたは、私が実行できるものにあなたのプログラムを簡素化することができます助けてください?非常にシンプルなものを試してみましたが、コマンドラインとEclipseの両方で動作させることができました。

ここで私が作成したスクリプトがあります:

輸入jline.ConsoleReader

DEFリーダー=新しいConsoleReader() LOOP:?。(真){ デフ入力=リーダー.readLine()しばらくは(トリム)

これを実行して、これが機能するかどうかを確認できますか?

1

私はこれがこの質問に関連していると信じて:

java.io.Console support in Eclipse IDE

基本的に、Eclipseはアプリケーションを実行するためのコンソールリーダーをサポートしていません - 私はアンドリュー・アイゼンバーグは、Eclipseでの作業結果を得た方法へと困惑しているもののそうであれば。

関連する問題