ルビーで私は持っています:
PTY.spawn("/usr/bin/lxc-monitor -n .+") do |i, o, pid|
# ...
end
これはscala/javaでどのように行いますか?
PTY が java/scala に移植されたとは思えません。Java から組み込みのランタイムを使用できます。
def run() {
val rt = Runtime.getRuntime
val cmds = Array("/usr/bin/lxc-monitor", "-n .+")
val env = Array("TERM=VT100")
val p1 = rt.exec(cmds, env)
}
このページを scala バージョンのベースとして使用しました。
アップデート:
出力を取得するには、入力ストリームを取得して読み取る必要があります (これは逆に聞こえますが、jvm に対する入力です)。以下の例では、apache commons を使用して、Java の詳細な部分をスキップしています。
import java.io.StringWriter
import org.apache.commons.io.IOUtils
class runner {
def run() {
val rt = Runtime.getRuntime
val cmds = Array("/usr/bin/lxc-monitor", "-n .+")
val env = Array("TERM=VT100")
val p1 = rt.exec(cmds, env)
val inputStream = p1.getInputStream
val writer = new StringWriter()
IOUtils.copy(inputStream, writer, "UTF-8")
val output = writer.toString()
println(output)
}
}
Apache utils のアイデアはhereから得ました。