запуск ссылки из JAR: «Firefox не может найти сервер на www.% u.com». - PullRequest
2 голосов
/ 31 октября 2011

Я пытаюсь запустить ссылку с Java.Как я это делаю, так это называю firefox, Internet Explorer или Safari следующим образом:

public class LinkLauncher implements Runnable  {
    static String Link;
    public void launchLink(String link){
        Link = " \""+link+"\"";
        Runnable runnable = new LinkLauncher();
        Thread thread = new Thread(runnable);
        thread.start();
    }
    public void run() {
         if (Desktop.isDesktopSupported()) {
            Desktop desktop;
            desktop = Desktop.getDesktop();
            URI uri = null;
            try {
                uri = new URI(Link);
                 desktop.browse(uri);
            } catch (IOException ioe) {
            } catch (URISyntaxException use) {
            }
        } else {
            Shell Shell = new Shell();
            String Cmd[]={"firefox", Link};
            String LaunchRes=Shell.sendShellCommand(Cmd);
            if (LaunchRes.contains("CritERROR!!!")){
                String MCmd[]={"open" , Link};
                String MLaunchRes=Shell.sendShellCommand(MCmd);
                if (MLaunchRes.contains("CritERROR!!!")){
                    String WCmd[]={"explorer", Link};
                    Shell.sendShellCommand(WCmd);
                }
            }
        }
    }

}

Этот метод отлично работает в NetBeans, но как только я создаю jav-файл jar, он перестает работать.

Когда я перехожу из netbeans в jar, в нем не пропускаются никакие библиотеки.Он просто отображает% U как ссылку в Firefox или других браузерах.

Как я могу это исправить?

Полный код доступен по адресу http://hummingbird -hibl.googlecode.com / svn / trunk /

1 Ответ

1 голос
/ 03 ноября 2011

Рабочий стол не поддерживается, но Java утверждает, что это так.Я изменил код следующим образом, поэтому последнее, что он пытается, это запустить «поддерживаемый» браузер.

    public class LinkLauncher implements Runnable  {
    static String Link;
    public void launchLink(String link){
        Link = link;
        Runnable runnable = new LinkLauncher();
        Thread thread = new Thread(runnable);
        thread.start();
    }
    public void run() {

        Shell Shell = new Shell();
        String Cmd[]={"firefox", Link};
        String LaunchRes=Shell.sendShellCommand(Cmd);
        if (LaunchRes.contains("CritERROR!!!")){
            String MCmd[]={"open" , Link};
            String MLaunchRes=Shell.sendShellCommand(MCmd);
            if (MLaunchRes.contains("CritERROR!!!")){
                String WCmd[]={"explorer", Link};
                String WLaunchRes=Shell.sendShellCommand(WCmd);
                if (WLaunchRes.contains("CritERROR!!!")){
                     if (Desktop.isDesktopSupported()) {
                        Desktop desktop;
                        desktop = Desktop.getDesktop();
                        URI uri = null;
                        try {
                            uri = new URI(Link);
                             desktop.browse(uri);
                        } catch (IOException ioe) {
                        } catch (URISyntaxException use) {
                        }
                     }
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...