「ランタイム」は、プログラムの実行に必要な部品の集合です。「java.lang.Runtime」は、そういった情報を得たりすることができるクラスです。
Javaの全てのアプリケーションは、Runtimeクラスのインスタンスを1つだけ持ちます。このインスタンスを取得することで、様々な操作を行えます。
Runtime r = Runtime.getRuntime();
Runtimeには、メモリの状態を知るためのメソッドが用意されています。
// Java仮想マシンが使用を試みる最大メモリー容量を取得 public long maxMemory() // Java仮想マシンのメモリーの総容量を取得 public long totalMemory() // Java仮想マシン内の空きメモリーの量を取得 public long freeMemory()
この命令を使うことで、メモリの状態をプログラム内から取得できます。
Runtime r = Runtime.getRuntime(); long f = r.freeMemory(); long t = r.totalMemory(); long m = r.maxMemory(); final float MB = 1024 * 1024; System.out.println("" + "Free : " + (f / MB) + " MB\n" + "Use : " + ((t -f) / MB) + " MB\n" + "Total: " + (t / MB) + " MB\n" + "Max : " + (m / MB) + " MB" );
Free : 182.41739 MB Use : 0.95760345 MB Total: 183.375 MB Max : 2721.8125 MB
Runtimeを使うことで、実行ファイルを実行することができます。この命令は、内部的にはProcessBuilderクラスの機能を使っています。
以下、execメソッドを使い、複数の引数付きで、アプリケーションを実行する例を示します。引数の配列の、最初の要素は実行ファイルのパスです。2つ目以降の要素は、実行ファイルの起動オプションになります。
Runtime r = Runtime.getRuntime(); try { r.exec(new String[]{ "C:\Program Files\Internet Explorer\iexplore.exe", "-private", "https://www.google.co.jp/" }); } catch (IOException e) { e.printStackTrace(); }