I know this is an old question, but sometimes Desktop.getDesktop() throws an unexpected failure, as in Ubuntu 18.04. Therefore, I have to rewrite my code as follows:
public static void openURL(String domain) { String url = "https://" + domain; Runtime rt = Runtime.getRuntime(); try { if (MUtils.isWindows()) { rt.exec("rundll32 url.dll,FileProtocolHandler " + url).waitFor(); Debug.log("Browser: " + url); } else if (MUtils.isMac()) { String[] cmd = {"open", url}; rt.exec(cmd).waitFor(); Debug.log("Browser: " + url); } else if (MUtils.isUnix()) { String[] cmd = {"xdg-open", url}; rt.exec(cmd).waitFor(); Debug.log("Browser: " + url); } else { try { throw new IllegalStateException(); } catch (IllegalStateException e1) { MUtils.alertMessage(Lang.get("desktop.not.supported"), MainPn.getMainPn()); e1.printStackTrace(); } } } catch (IOException | InterruptedException e) { e.printStackTrace(); } } public static boolean isWindows() { return OS.contains("win"); } public static boolean isMac() { return OS.contains("mac"); } public static boolean isUnix() { return OS.contains("nix") || OS.contains("nux") || OS.indexOf("aix") > 0; }
Then we can call this helper from the instance:
button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { MUtils.openURL("www.google.com");
Teocci Aug 09 '18 at 4:31 2018-08-09 04:31
source share