JavaでC,C++のsystem("cls");と同等の機能を実装する

  • 1
    いいね
  • 1
    コメント

はじめに

少し前にC言語でコンソールオセロゲームを作ったので、
Javaでも作ってみようとしたところ、
Cで出来たsystem("cls");をJavaでも出来ないかと思って調べたが、
色々手こずったのでここにメモしておこうと思う。

ググったら

何個か方法はあるらしいが、
エラーだったり、警告だったり色々ややこしいのが沢山あったので
その中でも一番スムーズに実装出来たやつを今回は紹介する。

今回、オセロを作るにあたって、
他にも画面の出力に関しての制御をしたい場合の拡張性も考慮したかったので、
コンソール画面の出力を制御するConsoleControlクラスを作り、
その中に画面の出力をクリアするclearScreenメソッドとして実装をした。

Sorce Code

import java.io.IOException;

/**
 * コンソール画面の出力を制御するクラス
 */
public class ConsoleControl {
    /**
     * コンソール画面の出力をクリアするメソッド
     * @throws  IOException
     * @throws  InterruptedException
     */
    public void clearScreen() throws IOException, InterruptedException {
        new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
    }
}

一応、メインメソッドでclearScreenメソッドを呼び出すことで、
コマンドプロンプトに表示されている文字列をクリアすることが出来た。

最後に

まだ、自分の知識不足で、何故こういう風に記述したら"cls"になるのかは理解できなかったが、
勉強を重ね理解が追い付いたら追記でその分を記述したいと思う。