我一直在试图弄清楚如何在Java中创建一种类似于ComputerCraft's CraftOS接口的命令行,使用jBASH和luaj这样的已知库,除了看起来我遇到的任何东西都不是不再保持或不能很好地运作。不幸的是,dan200让他的来源处于锁定和关键状态,所以我甚至看不出他是如何做到的......
这是否意味着我可能最终必须创建自己的BASH-y shell和/或我自己的LUA-y脚本方法,或者现在是否存在至少可以使用的东西?
答案 0 :(得分:2)
只是用一些代码跟进我的评论;
Process p = Runtime.getRuntime().exec("/bin/bash");
InputStream stdout = p.getInputStream();
InputStream stderr = p.getErrorStream();
OutputStream stdin = p.getOutputStream();
你可能会分别将它们包装在BufferedReader
和BufferedWriter
中,这样你就可以将它们用作字符流,从而可以执行读写文本行等操作。例如;
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%完美的结果,除非你已经有实现脚本语言的经验。)