如何使用java中的另一个程序执行cmd命令

时间:2014-08-01 13:48:50

标签: java

我想创建一个打开另一个java程序的程序。我可以在编译和运行java程序时运行/执行cmd命令。

例如c:\ Users \ Burnok> javac HelloWorld.java和             C:\用户\ Burnok> java HelloWorld

我怎么能在java程序中做到这一点?请帮忙。

我尝试了这段代码,但它编译成功,但如果我试图运行HelloWorld.class,它说无法找到或加载主类。

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;


public class Test {

     private static void printLines(String name, InputStream ins) throws Exception {
            String line = null;
            BufferedReader in = new BufferedReader(
                new InputStreamReader(ins));
            while ((line = in.readLine()) != null) {
                System.out.println(name + " " + line);
            }
          }

      private static void runProcess(String command) throws Exception {
        Process pro = Runtime.getRuntime().exec(command);
        printLines(command + " stdout:", pro.getInputStream());
        printLines(command + " stderr:", pro.getErrorStream());
        pro.waitFor();
      }

      public static void main(String[] args) {
        try {
            runProcess("javac src/HelloWorld.java");
            runProcess("java src/HelloWorld");
        } catch (Exception e) {
          e.printStackTrace();
        }
      }

}

这是错误 java src / HelloWorld stderr:错误:无法找到或加载主类src.HelloWorld

1 个答案:

答案 0 :(得分:1)

你应该在从另一个目录运行时提到类路径

语法为java -classpath directory_to_program Program

try {
        runProcess("javac src/HelloWorld.java");
        runProcess("java -classpath src HelloWorld");
    } catch (Exception e) {
      e.printStackTrace();
    }

阅读更多信息How do I run a java program from a different directory?