I am writing a java application and I want to open a link from my program in user's default internet browser. I tried to use class Desktop like this :
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
if (desktop.isSupported(java.awt.Desktop.Action.BROWSE)) {
try {
URI uri = new URI(url); // url is a string containing the URL
desktop.browse(uri);
}
catch (URISyntaxException ex) {
Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
However first if returns false. My OS is newest version of Ubuntu. Does anybody know how to get that Desktop supported in java?
You don't need to run the java code on the Gnome desktop, per se. You just need to have the Gnome libraries installed so that Java recognizes it (as ccheneson said).
If you are running a new version of Ubuntu, it doesn't come with the gnome libraries because it uses Unity. Try installing libgnome2-0
. When I installed it a few other packages came with it (libbonobo2-0
, libbonobo2-common
, libgnomevfs2-0
, libgnomevfs2-common
) so I don't know if libgnome2-0
is sufficient or if any of the others are necessary as well. But then my 12.04 Ubuntu system was recognized by the Java API.
I know this post is relatively old - but this question is in a variety of places online and the only place I found the "correct" answer (for me) was here
From this article
Use the Desktop.isDesktopSupported() method to determine whether the Desktop API is available. On the Solaris Operating System and the Linux platform, this API is dependent on Gnome libraries. If those libraries are unavailable, this method will return false. After determining that the API is supported, that is, the isDesktopSupported() returns true, the application can retrieve a Desktop instance using the static method getDesktop().
Try running your code on Gnome desktop.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With