1

JSCHを使用してLinuxでいくつかのコマンドを実行し、そのコマンドの出力を取得して、JAVAFXアプリケーションのアクティビティログに出力しています。

ここに問題があります: いくつかの行を印刷した後、アクティビティ ログ エリアが動かなくなります。しかし、ウィンドウから切り替えて戻ると、アプリケーションは引き続きログ領域に行を出力します。何度かデバッグしましたが、問題をキャッチできませんでした。

以下はコードです

channel.connect();

PrintStream commander = new PrintStream(channel.getOutputStream(), true);
commander.println(command_cd);
commander.println(" exit;");
commander.close();


InputStream outputstream_from_the_channel = channel.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(outputstream_from_the_channel));
String jarOutput;
BufferedWriter bw = new BufferedWriter(new FileWriter(resultLogFile.getAbsolutePath(), true));
while ((jarOutput = reader.readLine()) != null) {
    this.logger.info("Status Update = " + jarOutput);
    System.out.print("Status Update on screen ="+jarOutput + "\n");
    bw.write(jarOutput);
    bw.newLine();
    outputFromUnix.append(jarOutput).append("\n");

    // Display in activity log area in realtime.
    if (DeploymentTaskController.actLogTArea != null) {
        System.out.println("outputFromUnix.toString()---->>>>> " + outputFromUnix.toString());

    //actlogArea is TextArea

        DeploymentTaskController.actLogTArea.setText(outputFromUnix.toString());
        DeploymentTaskController.actLogTArea.end();

    }
}
bw.close();

reader.close();
4

1 に答える 1