Thank you for this post!
I've been fighting with getting JavaFX apps to run from a JAR and this hack works perfectly. I added a few modifications so it is easier to use for loading JAR's at runtime. My problem was that I need JavaFX, MySQL, and Java EE support, but I can't expect the end user to play with their configuration settings to get the application to run.
As for the other responses there is a HUGE difference between this method and creating a new class loader. My first attempt was to load everything via class loaders but JavaFX will not work properly when loaded from a class loader since classes built by different loaders aren't compatible.
Using this method I can search the users computer for their installation of JavaFX in the standard install folders. For the MySQL driver I include it inside the jar (jar within a jar). I save the mysql driver to the users home directory. After that loading it with the above method is trivial!