@@ -34,14 +34,29 @@ public static void openURL(final String url) {
3434 openUrlWindows (rt , url );
3535 } else if (OS .isLinux ()) {
3636 openUrlLinux (rt , url );
37+ } else if (OS .isMacOS ()) {
38+ openUrlMac (rt , url );
3739 } else {
38- // TODO implement for MAC
3940 LOG .warn ("OS '{}' is not supported" , OS .getOSName ());
4041 }
4142 }
4243
4344 private static void openUrlWindows (final Runtime rt , final String url ) {
4445 final String command = "rundll32 url.dll,FileProtocolHandler " + url ;
46+ executeCommand (rt , command , url );
47+ }
48+
49+ private static void openUrlLinux (final Runtime rt , final String url ) {
50+ final String [] command = {"xdg-open" , url };
51+ executeCommand (rt , command , url );
52+ }
53+
54+ private static void openUrlMac (final Runtime rt , final String url ) {
55+ final String [] command = {"open" , url };
56+ executeCommand (rt , command , url );
57+ }
58+
59+ private static void executeCommand (final Runtime rt , final String command , final String url ) {
4560 try {
4661 LOG .debug ("Executing command: {}" , command );
4762 rt .exec (command );
@@ -50,13 +65,10 @@ private static void openUrlWindows(final Runtime rt, final String url) {
5065 }
5166 }
5267
53- private static void openUrlLinux (final Runtime rt , final String url ) {
54- final String [] command = {
55- "xdg-open" , url
56- };
68+ private static void executeCommand (final Runtime rt , final String [] command , final String url ) {
5769 try {
5870 LOG .debug ("Executing command: {}" , Arrays .toString (command ));
59- rt .exec (command );
71+ rt .exec (command );
6072 } catch (final Exception e ) {
6173 LOG .error ("Could not open url '{}' with command '{}'." , url , Arrays .toString (command ), e );
6274 }
0 commit comments