I'm trying to open a web url in the default system browser from javafx. I didn't find any official documentation regard this. Any clue?
EDIT: I've found a tutorial but it doesn't work. I'm using MacOsX and I tried launching
java.awt.Desktop.getDesktop().browse(new URI(url));
but I get an HeadlessExcelption
Here is a script that works inside the scene controller, when a button is activated:
Complementing jewelsea's answer, if you don't know how to call getHostServices() then try this at your main class:
http://docs.oracle.com/javafx/2/api/javafx/application/HostServices.html#showDocument(java.lang.String)
Use hostServices.showDocument(location).
Try placing the following code in your application's start method:
Try This:
Another option is to use
ProcessBuilder
:You can use this option if
Desktop.getDesktop().browse(uri)
for some reason hangs without any error.It cannot be done, seems, because this feature is not implemented : https://javafx-jira.kenai.com/browse/RT-210
The matter is that you will not be able to launch anything, what requires awt-stack and jfx in the same VM. The decision - is to use a separate JVM. Just launch a separate VM, and accept commands on browsing by socket.
That is one way, another way - is to find any other way of browser call from java - this is a task not specific to javafx-2, but to java at all.
But developer has added a comment :
Anthony Petrov added a comment - May, 17 2013 05:09 PM Note that FX8 allows headful AWT to run in the same VM with FX. So the AWT API should work.