在浏览器中实时显示java输出

时间:2014-02-25 04:26:08

标签: java php echo bridge passthru

我想从PHP调用java类文件,并实时向用户的浏览器显示文本输出(指示进度)。 passthru()echo()system() PHP函数不起作用,并且php / java桥看起来有点矫枉过正。下面的代码(非常简化但是自包含)演示了passthru()函数如何实时返回java输出流,在这种情况下不起作用。在下面的代码中,只有在完成对java的调用后,文本流才会出现在浏览器中,即没有实时进度更新。

我已经尝试过这个解决方案,而其他人喜欢在Stack Overflow上提出建议,但无济于事。

Grab results from a php exec() while the command is still running?

你会建议什么?

的index.html:

<html lang="en">    
 <head>
 <meta charset="utf-8" />       
 <script src="jquery.js"></script>                      
 <script type="text/javascript">        
  $(document).on("click","#javacode_button",function(){
$("#java_output").load("innerpage.php",function(responseTxt,statusTxt,xhr){
});     
  });
  </script>     
  </head>
  <body>
    <div id="java_output"></div>
    <input type="Button" id="javacode_button" value="Run Java Code"/>
  </body>
</html>

innerpage.php:

<?php 
   echo 'start process <br>';
   echo passthru('java timer ');    
   echo '<br> end process';
?>

timer.java:

public class timer {
  public static void main(String args[])
    throws InterruptedException {
     for (int i = 0; i <= 100; i++) {
      //Print a message
      System.out.println("Progress = "+i+"% complete");
      //Pause
      Thread.sleep(150);            
    }
  }
}

0 个答案:

没有答案