On Mon, 6 Jul 2026 15:11:51 GMT, Pabulaner IV <[email protected]> wrote:
> # Problem description > > When You create a JavaFX native application with *jpackage* for macOS You > will run into an issue when trying to handle URIs. When Your application > isn’t running and You have it registered for handling certain types of URIs > it won’t receive the first URI. > > ## Here is a simple example: > > If You have a JavaFX application that handles URIs for example of the form > *openurifx://your-content* and You have it installed with *jpackage* for > macOS and now You try to handle an URI by running the following command: > > ``` open openurifx://hello-world ``` > > The application will open, but it won’t receive the above URI. If You call > the same command after the application is already running, everything will > work fine and the application will receive the URI. > > # Problem cause > > The cause of the problem is that when You build a JavaFX application and want > to handle URIs You will have to combine JavaFX and AWT as AWT provides the > URI handling capabilities. So the startup process is as follows: > > 1. JavaFX is initialized > 2. JavaFX forwards the URI event to AWT > 3. AWT is initialized > 4. AWT is ready to handle URI events from JavaFX > > The issue is that the URI event is delivered before AWT can handle it and > therefore is simple dropped. That’s why later URIs will be received and are > handled properly. > > # Fix > > The fix is that JavaFX will wait until it receives a ready event from AWT so > JavaFX knows that AWT is able to handle events now. After that it will > forward all buffered URIs and therefore everything will be handled correctly. > This means that the fix involves both the JFX and JDK repositories and needs > to be integrated in both. > > **Note**: In the case that a user has only a fix for the JFX part the URIs > won’t be delivered at all, but there won’t be any error. This means that > JavaFX applications won’t be able to handle any URIs so it might be an idea > to add an environment variable to tell JavaFX to not wait for an AWT ready > event. Then the first URI event would be lost, but at least all the following > events would be handled properly. > > # Tests > > To test the error and the fix You can clone this repository: > https://github.com/pabulaner/openurifx and checkout the branch *first-url*. > There You will find a README.md with further instructions. > > PR inside the JDK: https://github.com/openjdk/jdk/pull/31791 > > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). Whenever I used both AWT and JavaFX together, I force AWT to initialize before JavaFX as several other things can break as well when doing it the other way around. Is initializing JavaFX before AWT even officially supported? ------------- PR Comment: https://git.openjdk.org/jfx/pull/2203#issuecomment-4900623535
