×

Loading...
Ad by
  • 技多不压身,工到自然成:安省技工证书特训班,点击咨询报名!
Ad by
  • 技多不压身,工到自然成:安省技工证书特训班,点击咨询报名!

各位DX,紧急求救:怎样在servlet的 DOPOST() 中调用一个C的可执行文件?详情如下:

1。
平台:WIN2000, TOMCAT 4。0 WEB SERVER,
2. " c.exe" 是一个可执行C程序,它接受一个STRING作为ARGUMENT,在执行后产生三个文本文件。
现在我把c.exe放在 WEB-INF/classes下,且在SERVLET 中的DOPOST() 有如下程序:
...
public void dopost(){
String argument=request.getParameter("argument");
Runtime.r=Runtime.getRuntime();
r.exec("c.exe"+argument);
}

为什么会出现很多exception?
有人说用JNI 解决,但我没有C的源代码,谁有高见?EMAIL给我或电话都行。
Email: cs203250@cs.yorku.ca
Tel: 416-6613500

Thanks a lot.... :)
Report

Replies, comments and Discussions:

  • 枫下家园 / 电脑用户 / 各位DX,紧急求救:怎样在servlet的 DOPOST() 中调用一个C的可执行文件?详情如下:
    1。
    平台:WIN2000, TOMCAT 4。0 WEB SERVER,
    2. " c.exe" 是一个可执行C程序,它接受一个STRING作为ARGUMENT,在执行后产生三个文本文件。
    现在我把c.exe放在 WEB-INF/classes下,且在SERVLET 中的DOPOST() 有如下程序:
    ...
    public void dopost(){
    String argument=request.getParameter("argument");
    Runtime.r=Runtime.getRuntime();
    r.exec("c.exe"+argument);
    }

    为什么会出现很多exception?
    有人说用JNI 解决,但我没有C的源代码,谁有高见?EMAIL给我或电话都行。
    Email: cs203250@cs.yorku.ca
    Tel: 416-6613500

    Thanks a lot.... :)
    • up....
    • Read here
      你得到的Runtime是运行 Tomcat 的JVM, Tomcat 的Default SecurityManager是不允许Spawn另一个Process的. 你需要一个Permission Class, 并重新 Configure Tomcat 的SecurityManager. 去Tomcat 的conf目录下,修改这个文件Tomcat.polity.
      但是TOMCAT的SecurityManager没有经过严格测试,我建议你用JNI较好.
      用C++写一个小程序调用Win32 API 的ShellExecute 去执行"c.exe". 你的Servlet 就可以通过JNI Call 你的 C++了.