<AI> ブラウザのリンク(myapp:// など)からローカルのJavaFXアプリを起動するには、 OSに対するプロトコル(カスタムURLスキーム)の登録と、起動時に渡されたURLパラメータをJava側で処理する仕組みの2段構えが必要です。 1. 仕組みの全体像 OSへの登録: ブラウザからリンクがクリックされると、OSは登録されたカスタムURLスキーム(例:myapp://)を認識し、 対応するローカルアプリケーション(JavaFXアプリ)を起動します。 引数の受け渡し: リンクに含まれる文字列(URLやパラメータ)が、コマンドライン引数として起動中のJavaFXプロセスに渡されます。 JavaFX側での処理: 渡された引数(URL)をJavaFXの Application クラスが受け取り、指定された処理を実行します。 2. 各工程の詳細と実装手順 ① OSへのカスタムURLスキーム登録 Java単体ではOSレベルの登録を行えないため、インストーラやネイティブ化ツールを使用するのが一般的です。 Windows: レジストリの HKEY_CLASSES_ROOT にスキーム名(myapp)と、実行する .exe ファイルのパスを登録する必要があります。 macOS: アプリケーションの Info.plist に CFBundleURLTypes キーを追加して登録します。 ツール活用: JDeploy などのツールや、Javaの jpackage コマンドを使用することで、インストーラ作成時に自動でOSへスキームを登録できます。 ② JavaFXアプリ側でのパラメータ受け取り JavaFXの Application.start() メソッド内でパラメータを取得し、URL解析を行います。 java // Application.start() 内での取得例 Parameters parameters = getParameters(); ListrawArgs = parameters.getRaw(); if (!rawArgs.isEmpty()) { String url = rawArgs.get(0); // myapp://action?id=123 // ここでURLの解析と処理を行う } ③ 多重起動の制御 ブラウザリンクからの起動は、都度アプリが新規起動してしまう可能性があるため、単一インスタンス(Single Instance)として動作するよう制御します。 一般的に、OSのプロセス間通信(ソケット通信など)を用いて、既存のインスタンスへURLを送信し、画面を最前面に表示させる手法が用いられます。 3. ブラウザ側の実装 Webページ側は、通常のHTMLリンクでカスタムURLスキームを呼び出します。 html <a href="myapp://action?id=123">アプリを開</a> セキュリティ観点から、ブラウザはカスタムURLスキームの呼び出し時に、ユーザーへ確認ダイアログを表示します。 4 件のサイト JavaFX Application Custom Scheme URI Handler 2020/02/12 — Are you looking for Application#getParameters() ? Also, inst