将Java输出传递给调用脚本

时间:2013-04-04 18:00:13

标签: java apache servlets batch-file

我的目标是在apache webserver上运行CGI。我的CGI是用Java编写的。我正在使用一个批处理文件(后来可能是一个perl脚本)来启动完成所有业务的java CGI。

批处理文件可以工作并启动Java CGI。 java程序本身可以工作。但是没有任何东西从我的java代码发送回浏览器。我正在做简单的System.out.println来向浏览器发送内容。我使用this作为参考

我的批处理文件

    echo Content-Type: text/html
    echo.
    echo ^<html^>^<head^>^</head^>^<body^>
    echo Hello world!!!
    java -cp My.jar MyClass
    echo ^</body^>^</html^>

我的Java文件

    new File("C:\\wamp\\www\\cgi-bin\\" + new Date().getTime()).mkdir();
    System.out.println("<b>Hello world from Java</b>");

附注 - 我这样做是因为(不使用servlet容器等)我的任务是2到3分钟,我不想阻止servlet。同时,我需要更新用户任务的进度。这是非公开的,我不想让它太复杂,通过使用JMS,ajax等在容器内运行...

1 个答案:

答案 0 :(得分:0)

我想知道是否,
 如果java -cp My.jar MyClass显示应该作为单个命令的内容,但在批处理中不起作用,则可能会有for /f的解决方法......

@echo off
  rem  This works in Wampserver's Apache cgi-bin...
  rem     http://localhost/cgi-bin/testbat.bat
echo Content-Type: text/html
echo.
echo ^<html^>^<head^>^</head^>^<body^>
echo ^<H1^>Hello world!!!^</H1^>
echo ^<PRE^>
FOR /F "usebackq delims==" %%i IN (`dir`) do echo %%i
echo ^</PRE^>
echo ^</body^>^</html^>

无论如何,很高兴你解决了这个问题:) 干杯