3

我一直在试图弄清楚如何在 Java 中使用已知的库(如 jBASH 和 luaj)创建一种类似于ComputerCraft 的CraftOS 界面的命令行,但似乎我遇到的任何东西都不再维护或不再维护功能太好了。不幸的是,dan200 将他的源代码锁起来,所以我什至看不到他是如何做到的......

这是否意味着我最终可能不得不创建自己的 BASH-y shell 和/或我自己的 LUA-y 脚本方法,或者现在维护的东西至少在某种程度上是可用的?

4

3 回答 3

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));
于 2012-10-05T15:15:04.567 回答
1

[...] 已知库,如 jBASH 和 luaj,但似乎我遇到的任何东西要么不再维护,要么功能不太好。

Luaj 在 Sourceforge 上获得高度评价;上次更新是一年前;从那时起缺乏更新可能只是意味着它并不真正需要更新。Lua 是一种非常简单的语言。

即使您发现 luaj 不是 100% 适合您,我想修改它也会比“必须创建我自己的 BASH-y shell 和/或我自己的 LUA-y 脚本方法”容易得多。(后者可能也不会给出 100% 完美的结果,除非您已经有实现脚本语言的经验。)

于 2012-10-05T15:16:46.437 回答