仮想環境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)
どのように解決するべきでしょうか。
No.1ベストアンサー
- 回答日時:
俺は指摘のコードを修正後ちゃんと動くか確認したわけではありません、というかする気がありません。
====================
C言語とかVBとかにやると配列をそう書きたくなりますが
Javaの配列の宣言はこうですから
>char[] cbuf = new char[8192];
BufferedWriter[] bufferedwriter = new BufferedWriter[uml_number];
であるんじゃないかな、と予測します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行したらがメモ帳出て来てしまう
-
SYSTEM関数等を用いて複数のコ...
-
コマンドを実行してコマンドラ...
-
batよりjava起動
-
VBプログラムから「管理者とし...
-
windows power shell icacl
-
javaからバッチファイル実行
-
cmd /c を使ったときと使わなか...
-
Java 特定プロセス名前取得方法...
-
Eclipseで、プロジェクト名のと...
-
html上で、バッチやexeファイル...
-
マイクラjavaでForgeを入れたい...
-
classファイルについて
-
eclipseでスタックサイズを変更...
-
eclipseで1ファイルの警告を100...
-
この <windows.h> はどこに在る...
-
Eclipse(JAVA)のデバッグで他...
-
JAVAにのeclipseに関する質問で...
-
Google Colabでimport soxが出...
-
コミット前の更新データをチェ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSでタイトルバーを非表示...
-
jarファイルをバッチで実行させ...
-
VBプログラムから「管理者とし...
-
Java VM のヒープサイズについて
-
MacOS:ターミナルではNPMのコ...
-
ShellExecuteの使い方について
-
batよりjava起動
-
32bitアプリから64bitアプリの...
-
staticのメモリ共有について
-
SYSTEM関数等を用いて複数のコ...
-
windowsのタスクスケジューラを...
-
Javaプログラムでコマンド実行...
-
ACCESS VBA からエクセルを最小化
-
windows power shell icacl
-
CloudSticky.jarが起動しない。
-
JAVA実行ができなくなった・・
-
Tomcatのメモリー使用量が知りたい
-
javaからバッチファイル実行
-
C++ で DIR コマンド
-
popen() について。
おすすめ情報