2011-06-04 34 views
5

我想知道是否有某種shell只會聽用戶輸入(使用行緩衝區),並在main方法內部運行,包括classpath中的jdk。 因此,它在瀏覽器或常規控制檯中看起來像JavaScript控制檯。 測試代碼片段將會很方便。有沒有其他的BeanShell?像JavaScript或Groovy控制檯的Java?

一個可以只寫本到外殼並回車:

Map<String, String> env = System.getenv(); 
for (String envName : env.keySet()) { 
    System.out.format("%s=%s%n", envName, env.get(envName)); 
} 

這是bsh.Interpreter可以做。但我覺得很難使用。我不能用光標移到/離開shell行......^[[D^[[D^[[D ....我只能刪除最後一個字符。不知道這是操作系統特定的(我在Linux上),但它是非常不方便...

我的意思是什麼在Java語言中,不是JRuby的,Jython或Groovy的

回答

1

Java的文本控制檯是非常基本的用行緩衝。這是Java的一個功能。您可以使用JNI來更改輸入,但是生成一個可以完全控制輸入行爲方式的GUI更簡單。

1

您可以嘗試使用像shell一樣運行的Beanshell圖形桌面。

Start it with

java bsh.Console // runs the graphical desktop 
0

運行bsh.Interpreter下rlwrap - http://utopia.knoware.nl/~hlub/rlwrap/

rlwrap是一個偉大的計劃,增加了的ReadLine控件(歷史回憶,在線編輯等),以任何命令行程序。