java中模拟类的执行时,在linux下,如果需要传参数的话,怎么在程序中加参数??
譬如:
[root@host class]# java test[enter]
A B C [enter] (test函数所需要的参数)
A B C(test函数运行的结果)
[root@host class]String[] args = new String[] {"sh", "-c", "/usr/local/bin/class/test"};
Process proc = runtime.exec(args);
那作为参数的A B C应该在函数里怎么写?
我试过:
String[] args = new String[] {"sh", "-c A B C", "/usr/local/bin/class/test"};
String[] args = new String[] {"sh", "-A B C", "/usr/local/bin/class/test"};
String[] args = new String[] {"sh", "A B C", "/usr/local/bin/class/test"};
好像都不行。有谁知道吗?

解决方案 »

  1.   

    String[] args = new String[] {"sh",  "-c", "A","B", "C", "/usr/local/bin/class/test"};
      

  2.   

    楼上的,我试过了,
    String[] args = new String[] {"sh",  "-c", "A","B", "C", "/usr/local/bin/class/test"};和
    String[] args = new String[] {"sh",  "-c", "A B C", "/usr/local/bin/class/test"};
    都不行,有谁知道怎么写吗?
      

  3.   

    我记得好像数组里的每个String都应该是一个完整的命令,包括参数,你试试String[] args = new String[] {"sh A B C /usr/local/bin/class/test"};总之一句话,把你要执行的命令全部放在一个String 里面。用数组只是要能一次顺序执行多个命令。不保证对,我只是有点印象。
      

  4.   

    貌似String[] args = new String[6] {"sh",  "-c", "A","B", "C", "/usr/local/bin/class/test"};
      

  5.   

    我试了一下如果参数不会变化,可以把命令和参数全部写在一个字符串里,用这个Runtime.exec(String cmd);结果和用字符串数组是一样的
      

  6.   

    to楼上的,如果是一个命令,应该在linux下是如何的呢?
    如:/usr/local/bin/class/test A B C?
    我试过很多好像不行
      

  7.   

    在linux下可能有点不同,因为涉及用户、权限等问题,建议你看看完整格式的exec方法:exec(String command, String[] envp, File dir) exec(String[] cmdarray, String[] envp, File dir)