Задать вопрос
@8Yurasik8

Как из под Java программы открыть браузер, который стоит не по умолчанию, например Tor?

Есть необходимость из кода программы открыть не браузер по умолчанию, а Tor браузер, но на просторах сети я отыскал только как передать URL браузеру, который стоит как браузер по умолчанию. Заранее спасибо.
  • Вопрос задан
  • 1797 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Есть два пути:
1)
String pathToTor = "D:\\Tor\\Tor Browser\\Browser\\firefox.exe"; //путь к браузеру 
        String link = "http:\\stackoverflow.com\\"; //ссылка
        String request = String.format("%s %s", pathToTor, link);
        Runtime runtime = Runtime.getRuntime();
        runtime.exec(request);

+ Запускает только Tor
- Требуется абсолютный путь к браузеру

2)
Воспользуйтесь моим классом(набросал на скорую руку):

Класс реализации:

public class BrowserOpener {

    private String os;
    private Runtime runtime;

    public BrowserOpener() {

        os = System.getProperty("os.name").toLowerCase();
        runtime = Runtime.getRuntime();
    }

    public void openLinkInBrowser(String url) {

        try {
            if (isWindows()) {
                runtime.exec("rundll32 url.dll,FileProtocolHandler " + url);
            } else if (isMac()) {
                runtime.exec("open " + url);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    private boolean isWindows() {
        return os.contains("win");
    }

    private boolean isMac() {
        return os.contains("mac");
    }


}

Класс c методом Main:

import java.io.IOException;
import java.net.URISyntaxException;

public class Main {

    public static void main(String[] args) throws IOException, URISyntaxException {

        BrowserOpener opener = new BrowserOpener();
        opener.openLinkInBrowser("http://stackoverflow.com/");


    }


}


+
  • Ненужен абсолютный путь
  • Предлагает выбор пользователю
- Запускает не именно Tor
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы