-1

サーバー用の Java アプリケーションを開発したいのですが、Web サイト API (Twitch) に対して認証する必要があります。そのためには、Web ページからアカウントに接続する必要があるため、Lynx を使用して接続したいと考えています。ただし、Java アプリケーションから Lynx を起動しようとすると、プログラムがハングして何もしません。

Runtime rt = Runtime.getRuntime();

        try{

            if (os.contains("win")) {

                // this doesn't support showing urls in the form of "page.html#nameLink"
                rt.exec( "rundll32 url.dll,FileProtocolHandler " + url);

            } else if (os.contains("mac")) {

                rt.exec( "open " + url);

            } else if (os.contains("nix") || os.contains("nux")) {

                // Build a command string which looks like "browser1 "url" || browser2 "url" ||..."
                StringBuffer cmd = new StringBuffer();
                    cmd.append( "lynx" + " \"" + url + "\" ");
                rt.exec(new String[] { "sh", "-c", cmd.toString() });

            } else {
                return;
            }
        }catch (Exception e){
            return;
        }

どうやらこれは、特定の条件下で Runtime.getRuntime().exec() が機能しない可能性があるためですが、Lynx を機能させるのに関連するものを見つけることができませんでした。

サーバーOS:Ubuntuサーバー14.10

4

2 に答える 2

0

外部プロセスを開始する代わりに、java.net.URLConnection を使用してリクエストを作成できますか? その方が簡単かもしれませんし、確かに移植性も高くなります。

于 2015-10-02T17:29:08.970 に答える