应用程序内Java命令行

时间:2012-10-05 14:59:52

标签: java bash shell command-line lua

我一直在试图弄清楚如何在Java中创建一种类似于ComputerCraft's CraftOS接口的命令行,使用jBASH和luaj这样的已知库,除了看起来我遇到的任何东西都不是不再保持或不能很好地运作。不幸的是,dan200让他的来源处于锁定和关键状态,所以我甚至看不出他是如何做到的......

这是否意味着我可能最终必须创建自己的BASH-y shell和/或我自己的LUA-y脚本方法,或者现在是否存在至少可以使用的东西?

3 个答案:

答案 0 :(得分:2)

只是用一些代码跟进我的评论;

Process p = Runtime.getRuntime().exec("/bin/bash");
InputStream stdout = p.getInputStream();
InputStream stderr = p.getErrorStream();
OutputStream stdin = p.getOutputStream();

你可能会分别将它们包装在BufferedReaderBufferedWriter中,这样你就可以将它们用作字符流,从而可以执行读写文本行等操作。例如;

BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout));

答案 1 :(得分:2)

答案 2 :(得分:1)

  

[...]像jBASH和luaj这样的知名图书馆,除了看起来我遇到的任何东西要么不再维护,要么不能很好地运作。

Luaj在Sourceforge上受到高度评价;它是一年前的最后更新;从那以后缺乏更新可能只是意味着它还没有需要更新。 Lua是一种非常简单的语言。

即使你发现luaj对你来说并不是100%完美,但我认为修改它会比#34;创建我自己的BASH-y shell和/或我自己的LUA更容易y脚本方法"。 (后者可能不会给出100%完美的结果,除非你已经有实现脚本语言的经验。)