JDK6.0 et Desktop : Browser avec choix du navigateur
Bonjour !
La JDK 6.0 intègre des fonctionnalités Desktop portable, en s'inspirant de la librairie JDIC.
Cela me convient puisque j'emploie ces nouvelles capacités pour gérer une TrayIcon et faire appel à mon navigateur web par défaut pour lancer une page web.
Voici le code qui lance une page web avec le navigateur par défaut, via la JDK 6.0, sans utiliser la librairie JDIC :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| if (Desktop.isDesktopSupported())
{
Desktop desktop = Desktop.getDesktop();
URI uri = null;
try
{
uri = new URI("https://www.google.fr");
desktop.browse(uri);
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
catch(URISyntaxException use)
{
use.printStackTrace();
}
} |
C'est assez simple en soit, et c'est performant.
Mon soucis c'est que je souhaite spécifier le navigateur FireFox comme navigateur à utiliser, dans aller modifier le registre pour le mettre comme navigateur par défaut (Mon application devant être déployée sur plus de 300 postes... :mrgreen:).
Pour ce faire, j'ai trouvé un petit bout de code sur la FAQ JDIC :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| BrowserEngineManager bem = BrowserEngineManager.instance();
bem.setActiveEngine(BrowserEngineManager.MOZILLA);
IBrowserEngine be = bem.getActiveEngine();
//the path that constains xpcom.dll
be.setEnginePath("d:\\mozilla\\bin\\mozilla.exe");
//For IE, setActiveEngine is enough
//bem.setActiveEngine(BrowserEngineManager.IE);
final WebBrowser webBrowser = be.getWebBrowser();
try
{
webBrowser.setURL(new URL("http://www.google.com"));
}
catch (MalformedURLException e) {
e.printStackTrace();
} |
Malheureusement je ne parviens ni à le faire fonctionner (BrowserEngineManager n'est pas reconnu), ni à trouver un équivalant sur les fonctionnalités incluses dans la JDK6.0.
Quelqu'un s'est-il déjà confronté à ce problème ?
Toute aide est, bien entendue, la bienvenue :)
Merci à vous ;)