※ ChatGPTを利用し、要約された質問です(原文:仮想環境の標準入力/標準出力)
仮想環境の標準入力/標準出力
このQ&Aのポイント
仮想環境UserModeLinuxの標準入力/標準出力を取り出し、Javaのコンソールからコマンドを送信し、結果を出力するプログラムを作成する方法を教えてください。
仮想環境UserModeLinuxでの標準入力/標準出力の取得とJavaのコンソールからコマンドを送信し結果を出力するプログラムの作成方法を教えてください。
JavaでUserModeLinuxの仮想環境から標準入力/標準出力を取得し、コンソールからコマンドを送信するプログラムの作成方法を教えてください。
仮想環境UserModeLinuxの標準入力/標準出力を取り出し
Javaのコンソールからコマンドを送信し、結果を出力するプログラムを作成したいと考えいてます。
プログラムは以下の通りです。
import java.io.*;
public class UMLControl {
public static void main(String[] args) throws IOException{
/*
* UMLの起動
*/
String command[] = {"linux.uml", "ubd0=uml-root-hardy", "umid=uml1"};
// UMLを起動するためのプロセス(端末)
Process uml_process;
uml_process = Runtime.getRuntime().exec(command); // UMLを起動する
InputStream is = uml_process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
while ((line = br.readLine()) != null){
System.out.println(line);
}
/*
* UMLプロセスへの標準入力を渡して、実行するためのソースコード
*/
// UML本体のプロセス
Process process;
int uml_number = 1; // 作成したいUMLの数(私の場合は1台のみ)
int uml_no = 1; // 起動するUMLのナンバー(私の場合は1台のみ)
// プロセスへのコマンドを書き込むための、BufferWiter型のフィールドを宣言する
BufferedWriter bufferedwriter[uml_number];
bufferedwriter [uml_no] = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
// ユーザのコマンドの入力
// バッファリーダーの宣言(文字型入力ストリームから効率よくテキストを読み込む)
BufferedReader input = new BufferedReader (new InputStreamReader(System.in), 1);
System.out.print("UMLで実行するコマンドを入力してください>>");
String uml_control = input.readLine(); // コマンド(文字列)の入力
// 文字列を送る
bufferedwriter[uml_no].write(uml_control);
bufferedwriter[uml_no].flush();
/*
* 標準入出力を表示するソースコード
*/
BufferedReader inputreader = new BufferedReader(new InputStreamReader(process.getInputStream()));
// コマンドを読むバッファ
char[] cbuf = new char[8192];
// 入力を読み込む
int numRead = inputreader.read(cbuf);
while(numRead != -1){
if(numRead <= 8192){
// 標準入出力の内容を表示する
System.out.println(new String(cbuf, 0, numRead));
numRead = inputreader.read(cbuf);
}
}
}
}
UserModeLinuxの起動まではうまく動作します。
その後の「BufferedWriter bufferedwriter[uml_number];」
のuml_numberの部分で赤線があり、実行しても以下のように表示されます。
Exception in thread "main" java.lang.Error: コンパイル問題が未解決です:
トークン "uml_number" に構文エラーがあります。このトークンを削除してください
at UMLControl.main(UMLControl.java:28)
どのように解決するべきでしょうか。
お礼
ありがとうございます。 もう一度きちんと調べて質問し直したいとおもいます。