Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
349 views
in Technique[技术] by (71.8m points)

java - How to get Desktop class supported under Linux?

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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...