Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java应用程序执行Lynx_Java_Linux_Runtime_Lynx - Fatal编程技术网

从java应用程序执行Lynx

从java应用程序执行Lynx,java,linux,runtime,lynx,Java,Linux,Runtime,Lynx,我想为我的服务器开发一个java应用程序,但我需要对网站API(Twitch)进行身份验证。要做到这一点,我需要通过网页连接到一个帐户,所以我想使用Lynx这样做。但是,当我尝试从java应用程序启动Lynx时,程序挂起,什么也不做: Runtime rt = Runtime.getRuntime(); try{ if (os.contains("win")) { // this doesn't support sho

我想为我的服务器开发一个java应用程序,但我需要对网站API(Twitch)进行身份验证。要做到这一点,我需要通过网页连接到一个帐户,所以我想使用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工作相关的东西

服务器操作系统:Ubuntu服务器14.10运行时.exec()返回一个进程,你应该从它的stdout输出中读取并写入它的stdin(如果程序需要)

有关详细信息,请参阅本文的“为什么运行时.exec()挂起”一节


顺便说一句,目前在java中执行进程的首选方法是使用
ProcessBuilder

您可以使用java.net.URLConnection来发出请求,而不是启动外部进程吗?这可能更简单,也肯定更便于携带