我一直在试图找到一种方法来创建一个类似于ComputerCraft的CraftOS界面的Java命令行,使用像jBASH和luaj这样的已知库,但是似乎我遇到的任何东西都不再维护或者功能表现不佳。不幸的是,dan200将他的源代码锁定了,所以我甚至无法看到他是如何实现的...
这是否意味着我最终将不得不创建自己的BASH式外壳和/或自己的LUA式脚本方法,或者现在是否有一些正在维护的,至少有些可用的东西?
我一直在试图找到一种方法来创建一个类似于ComputerCraft的CraftOS界面的Java命令行,使用像jBASH和luaj这样的已知库,但是似乎我遇到的任何东西都不再维护或者功能表现不佳。不幸的是,dan200将他的源代码锁定了,所以我甚至无法看到他是如何实现的...
这是否意味着我最终将不得不创建自己的BASH式外壳和/或自己的LUA式脚本方法,或者现在是否有一些正在维护的,至少有些可用的东西?
为了跟进我的评论,这里附上一些代码:
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));
Luaj在Sourceforge上评价很高;它最后更新于一年前;自那以来缺乏更新可能只意味着它并没有真正需要更新。Lua是一种相当简单的语言。
即使您发现luaj对您来说不是100%完美的,我想修改它会比“必须创建自己的BASH-y shell和/或自己的LUA-y脚本方法”容易得多。(后者可能也不会给出100%完美的结果,除非您已经有实现脚本语言的经验。)