2011-11-24 13 views
8

Sto scrivendo un'applicazione java e voglio aprire un collegamento dal mio programma nel browser Internet predefinito dell'utente. Ho provato ad usare class Desktop come questo:Come ottenere la classe Desktop supportata su Linux?

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); 
     } 
    } 
} 

Tuttavia, se prima restituisce false. Il mio sistema operativo è la versione più recente di Ubuntu. Qualcuno sa come ottenere che Desktop sia supportato in java?

risposta

5

Da this article

Utilizzare il metodo Desktop.isDesktopSupported() per determinare se l'API desktop è disponibile. Nel sistema operativo Solaris e nella piattaforma Linux , questa API dipende dalle librerie Gnome. Se quelle librerie non sono disponibili, questo metodo restituirà false. Dopo che ha stabilito che l'API è supportata, ovvero il valore isDesktopSupported() restituisce true, l'applicazione può recuperare un'istanza desktop utilizzando il metodo statico getDesktop().

Prova a eseguire il codice sul desktop Gnome.

+6

Ed ecco il rapporto problema per KDE supporto: http://bugs.sun.com/view_bug.do?bug_id=6486393 Nessun aggiornamento da 5 anni ... :-( – Puce

8

Non è necessario eseguire il codice java sul desktop Gnome, di per sé. Hai solo bisogno di avere le librerie Gnome installate in modo che Java la riconosca (come diceva Ccheneson).

Se si sta eseguendo una nuova versione di Ubuntu, non viene fornito con le librerie gnome poiché utilizza Unity. Prova ad installare libgnome2-0. Quando l'ho installato alcuni altri pacchetti sono arrivati ​​con esso (libbonobo2-0, libbonobo2-common, libgnomevfs2-0, libgnomevfs2-common), quindi non so se lo libgnome2-0 è sufficiente o se anche uno qualsiasi degli altri è necessario. Ma poi il mio sistema Ubuntu 12.04 è stato riconosciuto dall'API Java.

So che questo post è relativamente vecchia - ma questa domanda è in una varietà di posti on-line e l'unico posto ho trovato la risposta "corretta" (per me) era here

Problemi correlati