Java браузер по умолчанию

Как открыть браузер по умолчанию с помощью Java

Для меня решение с Desktop.isDesktopSupported() не работает (Windows 7 и Ubuntu). Пожалуйста, попробуйте это, чтобы открыть браузер из кода Java:

Runtime rt = Runtime.getRuntime(); String url = "http://stackru.com"; rt.exec("rundll32 url.dll,FileProtocolHandler " + url); 
Runtime rt = Runtime.getRuntime(); String url = "http://stackru.com"; rt.exec("open " + url); 
Runtime rt = Runtime.getRuntime(); String url = "http://stackru.com"; String[] browsers = < "epiphany", "firefox", "mozilla", "konqueror", "netscape", "opera", "links", "lynx" >; StringBuffer cmd = new StringBuffer(); for (int i = 0; i < browsers.length; i++) if(i == 0) cmd.append(String.format( "%s \"%s\"", browsers[i], url); else cmd.append(String.format(" || %s \"%s\"", browsers[i], url); // If the first didn't work, try the next browser and so on rt.exec(new String[] < "sh", "-c", cmd.toString() >); 

Если вы хотите иметь мультиплатформенное приложение, вам нужно добавить проверку операционной системы (например):

String os = System.getProperty("os.name").toLowerCase(); 
os.indexOf("nix") >=0 || os.indexOf("nux") >=0 

Вот мой код Он откроет данный URL в браузере по умолчанию (кроссплатформенное решение).

import java.awt.Desktop; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; public class Browser < public static void main(String[] args) < String url = "http://www.google.com"; if(Desktop.isDesktopSupported())< Desktop desktop = Desktop.getDesktop(); try < desktop.browse(new URI(url)); >catch (IOException | URISyntaxException e) < // TODO Auto-generated catch block e.printStackTrace(); >>else < Runtime runtime = Runtime.getRuntime(); try < runtime.exec("xdg-open " + url); >catch (IOException e) < // TODO Auto-generated catch block e.printStackTrace(); >> > > 

Как отмечено в ответе, предоставленном Тимом Купером, java.awt.Desktop предоставляет эту возможность начиная с версии Java 6 (1.6), но со следующим предупреждением:

Для платформ, которые не поддерживают или не предоставляют java.awt.Desktop , загляните в проект BrowserLauncher2. Он получен и несколько обновлен от класса BrowserLauncher, первоначально написанного и выпущенного Эриком Альбертом. Я успешно использовал исходный класс BrowserLauncher в многоплатформенном приложении Java, которое в начале 2000-х годов работало локально с интерфейсом веб-браузера.

Читайте также:  About cloning in java

Обратите внимание, что BrowserLauncher2 распространяется под лицензией GNU Lesser General Public License. Если эта лицензия неприемлема, найдите копию оригинального BrowserLauncher с очень либеральной лицензией:

Этот код защищен авторским правом Эрика Альберта 1999-2001 гг. ([email protected]) и может распространяться или изменяться в любой форме без ограничений до тех пор, пока часть этого комментария из этого абзаца до конца комментария не будет удалена, Автор просит, чтобы его уведомили о любом приложении, апплете или другом двоичном файле, который использует этот код, но это скорее из любопытства, чем что-либо другое, и не требуется. Это программное обеспечение не включает никаких гарантий. Автор не несет ответственности за потерю данных или функциональности, а также за любые неблагоприятные или неожиданные последствия использования данного программного обеспечения.

Кредиты: Стивен Спенсер, журнал JavaWorld (Java Tip 66). Спасибо также Рону Б. Йе, Эрику Шапиро, Бену Энгберу, Полу Тейтлебауму, Андреа Кантаторе, Ларри Баровски, Тревору Бедзеку, Фрэнку Мидричу и Рону Рабакукку

Проекты, отличные от BrowserLauncher2, возможно, также обновили исходный BrowserLauncher для учета изменений в браузере и системных настройках безопасности по умолчанию с 2001 года.

Источник

Как открыть браузер по умолчанию с помощью Java

java.awt.Desktop — это класс, который вы ищете.

import java.awt.Desktop; import java.net.URI; // . if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) < Desktop.getDesktop().browse(new URI("http://www.example.com")); >

Это кроссплатформенное решение или только Windows? другие ответы в этой теме предлагают использовать класс Runtime для Linux

@lgal, он работал для меня как на Windows 7, так и на Linux (Ubuntu 10.10). Он всегда открывает системный браузер по умолчанию (в моем случае IE на Win7 и Firefox на Ubuntu)

Это не работает для меня. Метод IsDesktopSupported всегда возвращает false на моем компьютере с Windows. В чем дело?

Если пользователь назначил пользовательскому действию «открыть с» расширение файла, например «html», то это НЕ откроет браузер, но программу, с которой пользователь связал его . Это не решение вообще!

@krzysiek.stekrzysiek.ste вместо этого используйте Desktop.getDesktop().isSupported(Desktop.Action.BROWSE) .

Есть ли ресурсы, которые нужно очистить? Когда я это делаю, я не могу удалить соответствующий файл .jar, пока открыто окно браузера.

Вот мой код. Он откроет данный url в браузере по умолчанию (кросс-платформенное решение).

import java.awt.Desktop; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; public class Browser < public static void main(String[] args) < String url = "http://www.google.com"; if(Desktop.isDesktopSupported())< Desktop desktop = Desktop.getDesktop(); try < desktop.browse(new URI(url)); >catch (IOException | URISyntaxException e) < // TODO Auto-generated catch block e.printStackTrace(); >>else < Runtime runtime = Runtime.getRuntime(); try < runtime.exec("xdg-open " + url); >catch (IOException e) < // TODO Auto-generated catch block e.printStackTrace(); >> > > 

«xdg-open» не распознается как внутренняя или внешняя команда, работающая программа или командный файл ».

Помимо «Desktop.isDesktopSupported ()» также проверьте «Desktop.getDesktop (). IsSupported (Action.BROWSE)».

Для меня решение с Desktop.isDesktopSupported() не работает (окна 7 и ubuntu). Попробуйте это, чтобы открыть браузер из java-кода:

Runtime rt = Runtime.getRuntime(); String url = "http://stackoverflow.com"; rt.exec("rundll32 url.dll,FileProtocolHandler " + url); 
Runtime rt = Runtime.getRuntime(); String url = "http://stackoverflow.com"; rt.exec("open " + url); 
Runtime rt = Runtime.getRuntime(); String url = "http://stackoverflow.com"; String[] browsers = < "epiphany", "firefox", "mozilla", "konqueror", "netscape", "opera", "links", "lynx" >; StringBuffer cmd = new StringBuffer(); for (int i = 0; i < browsers.length; i++) if(i == 0) cmd.append(String.format( "%s \"%s\"", browsers[i], url); else cmd.append(String.format(" || %s \"%s\"", browsers[i], url); // If the first didn't work, try the next browser and so on rt.exec(new String[] < "sh", "-c", cmd.toString() >); 

Если вы хотите иметь многоплатформенное приложение, вам нужно добавить проверку операционной системы (например):

String os = System.getProperty("os.name").toLowerCase(); 
os.indexOf("nix") >=0 || os.indexOf("nux") >=0 

Перечислить все браузеры в решении Linux очень плохо. Что делать, если один использует другой браузер, чем любой из списка? (в списке нет ни хрома, ни хрома) Или есть и Богоявление, и Firefox, но предпочитает использовать последний? Использование xdg-open в этом случае намного лучше. Поэтому решение может быть таким же простым, как у macOS.

Вы также можете использовать Runtime для создания кросс-платформенного решения:

import java.awt.Desktop; import java.net.URI; public class App < public static void main(String[] args) throws Exception < String url = "http://stackoverflow.com"; if (Desktop.isDesktopSupported()) < // Windows Desktop.getDesktop().browse(new URI(url)); >else < // Ubuntu Runtime runtime = Runtime.getRuntime(); runtime.exec("/usr/bin/firefox -new-window " + url); >> > 

Как отмечено в ответе Тима Купера, java.awt.Desktop предоставляет эту возможность начиная с версии Java 6 (1.6), но со следующим предостережением:

Для платформ, которые не поддерживают или не предоставляют java.awt.Desktop , загляните в проект BrowserLauncher2. Он получен и несколько обновлен от класса BrowserLauncher, первоначально написанного и выпущенного Эриком Альбертом. Я успешно использовал исходный класс BrowserLauncher в многоплатформенном приложении Java, которое в начале 2000-х годов работало локально с интерфейсом веб-браузера.

Обратите внимание, что BrowserLauncher2 распространяется под лицензией GNU Lesser General Public License. Если эта лицензия неприемлема, найдите копию оригинального BrowserLauncher с очень либеральной лицензией:

Этот код защищен авторским правом 1999-2001 Эрика Альберта ([email protected]) и может распространяться или изменяться в любой форме без ограничений до тех пор, пока часть этого комментария из этого абзаца до конца комментария не будет удалена, Автор просит, чтобы он был уведомлен о любом приложении, апплете или другом двоичном файле, который использует этот код, но это больше из любопытства, чем что-либо другое, и не требуется. Это программное обеспечение не включает никаких гарантий. Автор не несет ответственности за потерю данных или функциональности, а также за любые неблагоприятные или неожиданные последствия использования данного программного обеспечения.

Кредиты: Стивен Спенсер, журнал JavaWorld (Java Tip 66). Спасибо также Рону Б. Йе, Эрику Шапиро, Бену Энгберу, Полу Тейтлебауму, Андреа Кантаторе, Ларри Баровски, Тревору Бедзеку, Фрэнку Мидричу и Рону Рабакукку

Проекты, отличные от BrowserLauncher2, возможно, также обновили исходный BrowserLauncher для учета изменений в браузере и системных настройках безопасности по умолчанию с 2001 года.

Источник

Как открыть веб-браузер по умолчанию с помощью java

java.awt.Desktop – это класс, который вы ищете.

import java.awt.Desktop; import java.net.URI; // . if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) < Desktop.getDesktop().browse(new URI("http://www.example.com")); >

Вот мой код. Он откроет данный url в браузере по умолчанию (кросс-платформенное решение).

import java.awt.Desktop; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; public class Browser < public static void main(String[] args) < String url = "http://www.google.com"; if(Desktop.isDesktopSupported())< Desktop desktop = Desktop.getDesktop(); try < desktop.browse(new URI(url)); >catch (IOException | URISyntaxException e) < // TODO Auto-generated catch block e.printStackTrace(); >>else < Runtime runtime = Runtime.getRuntime(); try < runtime.exec("xdg-open " + url); >catch (IOException e) < // TODO Auto-generated catch block e.printStackTrace(); >> > > 

Для меня решение с Desktop.isDesktopSupported() не работает (окна 7 и ubuntu). Попробуйте это, чтобы открыть браузер из java-кода:

Runtime rt = Runtime.getRuntime(); String url = "http://stackoverflow.com"; rt.exec("rundll32 url.dll,FileProtocolHandler " + url); 
Runtime rt = Runtime.getRuntime(); String url = "http://stackoverflow.com"; rt.exec("open " + url); 
Runtime rt = Runtime.getRuntime(); String url = "http://stackoverflow.com"; String[] browsers = < "epiphany", "firefox", "mozilla", "konqueror", "netscape", "opera", "links", "lynx" >; StringBuffer cmd = new StringBuffer(); for (int i = 0; i < browsers.length; i++) if(i == 0) cmd.append(String.format( "%s \"%s\"", browsers[i], url); else cmd.append(String.format(" || %s \"%s\"", browsers[i], url); // If the first didn't work, try the next browser and so on rt.exec(new String[] < "sh", "-c", cmd.toString() >); 

Если вы хотите иметь многоплатформенное приложение, вам нужно добавить проверку операционной системы (например):

String os = System.getProperty("os.name").toLowerCase(); 
os.indexOf("nix") >=0 || os.indexOf("nux") >=0 

Вы также можете использовать Runtime для создания кросс-платформенного решения:

import java.awt.Desktop; import java.net.URI; public class App < public static void main(String[] args) throws Exception < String url = "http://stackoverflow.com"; if (Desktop.isDesktopSupported()) < // Windows Desktop.getDesktop().browse(new URI(url)); >else < // Ubuntu Runtime runtime = Runtime.getRuntime(); runtime.exec("/usr/bin/firefox -new-window " + url); >> > 

Как отмечено в ответе Тима Купера, java.awt.Desktop предоставляет эту возможность начиная с версии Java 6 (1.6), но со следующим предостережением:

Для платформ, которые не поддерживают или не предоставляют java.awt.Desktop , загляните в проект BrowserLauncher2. Он получен и несколько обновлен от класса BrowserLauncher, первоначально написанного и выпущенного Эриком Альбертом. Я успешно использовал исходный класс BrowserLauncher в многоплатформенном приложении Java, которое в начале 2000-х годов работало локально с интерфейсом веб-браузера.

Обратите внимание, что BrowserLauncher2 распространяется под лицензией GNU Lesser General Public License. Если эта лицензия неприемлема, найдите копию оригинального BrowserLauncher с очень либеральной лицензией:

Этот код защищен авторским правом 1999-2001 Эрика Альберта (ejalbert@cs.stanford.edu) и может распространяться или изменяться в любой форме без ограничений до тех пор, пока часть этого комментария из этого абзаца до конца комментария не будет удалена, Автор просит, чтобы он был уведомлен о любом приложении, апплете или другом двоичном файле, который использует этот код, но это больше из любопытства, чем что-либо другое, и не требуется. Это программное обеспечение не включает никаких гарантий. Автор не несет ответственности за потерю данных или функциональности, а также за любые неблагоприятные или неожиданные последствия использования данного программного обеспечения.

Кредиты: Стивен Спенсер, журнал JavaWorld (Java Tip 66). Спасибо также Рону Б. Йе, Эрику Шапиро, Бену Энгберу, Полу Тейтлебауму, Андреа Кантаторе, Ларри Баровски, Тревору Бедзеку, Фрэнку Мидричу и Рону Рабакукку

Проекты, отличные от BrowserLauncher2, возможно, также обновили исходный BrowserLauncher для учета изменений в браузере и системных настройках безопасности по умолчанию с 2001 года.

для windows invoke “cmd/k start http://www.example.com”
Infact вы всегда можете вызывать программы по умолчанию с помощью команды start.
Для ex start abc.mp3 вызовет mp3-плеер по умолчанию и загрузит запрошенный mp3 файл.

Его очень просто написать ниже код:

String s = "http://www.google.com"; Desktop desktop = Desktop.getDesktop(); desktop.browse(URI.create(s)); 

или если вы не хотите загружать URL-адрес, просто напишите имя своего браузера в строковые значения, например

String s = "chrome"; Desktop desktop = Desktop.getDesktop(); desktop.browse(URI.create(s)); 

он автоматически откроет браузер с пустым URL-адресом после выполнения программы

Источник

Оцените статью