触发远端一台计算机上的一段程序,意思就是和jsp或者servlet不再同一个机器上?触发同一台计算机上的程序或者shell命令比较简单,runtime.exec就可以了,但是远程的嘛,如果在linux上,试试 rexec吧,俺从没试过.

解决方案 »

  1.   

    shenpipi(皮皮) 说得对,支持!!!
      

  2.   

    由于安全管理的原因,远程的应该是不行的
    但是本机用runtime.exec可以做到
      

  3.   

    呵呵,本来在java里面调用shell命令就不好.不过有时候也是没办法.俺有一次还在java中用ssh登陆到远程服务器,然后以一个用户身份执行一个命令,再退出呢.后来想想,真是傻
      

  4.   

    我的情况是这样,要用IE触发一个监控程序,但是那个程序是在AIX6000环境下.那个程序执行后会往数据库里写一些东西,我再用IE调出那些东西看,所以我想要一个反馈告诉我程序执行完毕了,不知道这样可不可以.
    To 皮皮大侠:
        我JAVA很白痴的,你说的runtime.exec能给个小例子吗,谢谢啦!
      

  5.   

    Runtime r=Runtime.getRuntime();
                    Process p=null;
                    p=r.exec("F:\\ceshi\\Fileoutput\\Fileoutput2.exe");
      

  6.   

    to 皮皮大侠:
        我跪求你在java中用ssh登陆到远程服务器,然后以一个用户身份执行一个命令,再退出呢.发给我看看吧,好吗,谢谢了.
      

  7.   

    to 编成浪子:
        谢谢你,来http://community.csdn.net/Expert/topic/4177/4177144.xml?temp=.8045923拿分
      

  8.   

    to 赛扬663:
        我很白痴的,你有ACTIVE控件的例子吗?请赐教!
      

  9.   

    如果你在Aix上运行jsp的话,那么可以用runtime.exec.这是例子.
    try
        {
          Process p = rt.exec("ps aux");
          //获取stdout
          BufferedReader in = new BufferedReader(new InputStreamReader(p.
              getInputStream()));
          //获取stderr
          BufferedReader err = new BufferedReader(new InputStreamReader(p.
              getInputStream()));
          //获取stdin
          PrintWriter out = new PrintWriter(new OutputStreamWriter(p.
              getOutputStream()));
          p.waitFor();
          //这里可以从stdout,stderr获取内容,往stdin写内容
        }
        catch (IOException ex)
        {
          ex.printStackTrace();
        }
        catch (InterruptedException ex)
        {
          ex.printStackTrace();
        }
      

  10.   

    如果你不是在那个Aix上没有应用服务器,jsp不是运行在aix上的话,那就是说要触发远程的shell命令,估计aix不支持rexec的.如果你那个aix开了sshd的话,可以用我前面所说的方法.如果开telnet的话,自己写个socket,连接到telnet服务器,运行那个程序,运行完了再退出就是了.
    声明,这绝对不是好办法!!!!