◆PROCESSING 逆引きリファレンス
カテゴリー:制御系
OS名やユーザ名を取得するには
【解説】
PROCESSINGはWindows以外にも、OSX(MAC)やLinux環境で動作します。PROCESSINGから派生したProcessing.jsやP5.jsを使えば、ブラウザ上で(ということはスマホの上でも)動きますね。
JavaScript版の解説は別途機会を設けるとして、Windowsなどで動作するPROCESSINGから、プログラムが動作しているOSの種類やユーザ名を判定するには、どうすれば良いでしょうか?。
PROCESSINGはJavaをベースにした言語ですので、Javaと同じ手法が利用可能です。具体的には、JavaのSystemクラスがもつgetProperty() メソッドに様々な値を与える事で、いろいろな情報が取得できます。
JavaのSystemクラスやgetProperty() メソッドについては、下記サイト様などが参考となります。
【構文】
String getVal = getProperty( String key ) ;
String getVal = getProperty( String key, String def ) ;
getVal:取得した文字列
key :取得したい情報のキーワード
def :キーワードが不在の場合のデフォルト取得値
OSの名前を得るには 、keyに “os.name” を与えます。またOSのバージョンを得るには “os.version” を与えます。
【注意】
以下に代表的なキーワードを挙げます。これ以外にも幾つかのキーワードが存在します。
getProperty( String key ) の場合、指定したキーワードが存在しない場合は NULL が戻されます。
getProperty( String key, String def ) の場合、指定したキーワードが存在しない場合は def で与えた文字列が戻されます。
【関連記事】
サンプルプログラム
各種値を取得する例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import java.lang.System; void setup(){ size(100,100); noLoop(); println( System.getProperty("os.name") ); println( System.getProperty("os.arch") ); println( System.getProperty("os.version")); println( System.getProperty("java.version")); println( System.getProperty("java.vendor")); println( System.getProperty("java.home")); println( System.getProperty("user.name")); println( System.getProperty("user.home")); println( System.getProperty("user.dir")); println( System.getProperty("hoge", "default") ); } void draw(){ } |
上記で紹介した各種値を取得して表示しています。
私の環境はWindows10ですので、以下のような結果になりました。一番最後の キーワードが”hoge “と書かれた箇所は、キーワードが存在しないので “default” が戻されています(笑)。
得られる値は、当然実行環境によって異なります。みなさんの環境に合わせて適時読み替えてください。
本ページで利用しているアイコン画像は、下記サイト様より拝借しております。各画像の著作権は、それぞれのサイト様および作者にあります。