Java具有使用Runtime.exec对本地程序调用进行重定向的能力

以下是一个简单类的范例,展示了在Unix下运行ls命令的情形:import java.io.BufferedInputStream;
import java.io.IOException;public class ExecLs {    static public void main(String[] args) {
        String cmd = "ls"        try {
            Process ps = Runtime.getRuntime().exec(cmds);
            System.out.print(loadStream(ps.getInputStream()));
            System.err.print(loadStream(ps.getErrorStream()));
        } catch(IOException ioe) {
            ioe.printStackTrace();
        }
    }http://www.zdnet.com.cn/developer/code/story/0,2000081534,39102709,00.htm

解决方案 »

  1.   

    我不是要运行操作系统的命令,我的情况是这样的,我要传了一个"com.project.SqlBean.getCmd()"的字符串,前面是包名,后面是类和要调用的函数,请问如何执行这个东东?
      

  2.   

    没有参数的话
    String classname = "com.project.SqlBean";
    String methodname = "getCmd";
    Class[] parameterTypes = {};//参数类数组
    Object[] args = {};//调用方法的参数数组
    Class classInst = Class.forName(classname);
    Object obj = classInst.newInstance();
    Method methodInst = classInst.getMethod(methodname, parameterTypes);methodInst.invoke(obj, args);//调用方法
      

  3.   

    rubyz兄,请问Method类是不是从java.lang.reflect中引用的?
      

  4.   

    还有参数类数组应该如何表示啊,如果是参数是String类型,应该写成什么?谢谢!
      

  5.   

    Class[] parameterTypes = (new Class[] {java.lang.String.class, java.lang.String.class});