JavaFXとパラメータの取得¶
はじめに¶
JavaFXプログラムは、コマンドラインから実行する形式、ブラウザ内で実行する形式、Java Web StartとしてWebダウンロードして実行する形式があります。
プログラムを実行するときに、コマンドラインから実行する場合はコマンドラインオプションとして、ブラウザ内で実行する形式ではHTMLのパラメータ定義として、Java Web Startとして実行する形式としてJNLPのパラメータ定義としてプログラムにオプションを指定することができます。
JavaFXプログラムとしては、どの形式で実行されても共通のAPIでパラメータを取得することが可能となっています。
パラーメータAPI¶
参照情報
javafx.application.Application.Parameters¶
JavaFXでパラメータを取得するAPIとして、ApplicationクラスのネストクラスParametersが提供されています。
主要APIは次の3つです。
Map<String, String> getNamed(); List<String> getRaw(); List<String> getUnnamed();
getNamed¶
名前と値のペアで指定したパラメータが取得できます。
getRaw¶
すべてのパラメータが取得できます。
getUnnamed¶
すべてのパラメータから、名前と値のペアで指定したパラメータを除いたものが取得できます。
コマンドラインオプションで指定したパラメータ¶
実験1¶
public class MyApplication extends Application {
@Override
public void start(Stage primaryStage) {
printParameters();
:
}
private void printParameters() {
Parameters params = getParameters();
params.getRaw().forEach(System.out::println);
params.getUnnamed().foreEach(System.out::println);
params.getNamed().forEach((k, v) -> System.out.printf("%s : %s%n", k, v));
}
}
このプログラムに対して、いくつかオプションを指定してみます。
java -jar MyApplication.jar aaa -bbb --ccc ddd=delta -eee=echo --fff=foxtrot
結果は、
- getRaw()
aaa -bbb --ccc ddd=delta -eee=echo --fff=foxtrot
- getUnnamed()
aaa -bbb --ccc ddd=delta -eee=echo
- getNamed()
fff : foxtrot
となりました。つまり、コマンドラインオプションで指定する場合は、名前付きパラメータ(キーと値のペア)となるのは、オプションに'--'で始まる名前と'='で値を続けて記載した場合だけです。
--名前=値