有没有办法使用java来执行一系列命令行

时间:2010-07-27 00:04:53

标签: java visual-c++ command-line

我正在寻找一种在java中编译visual studio c ++项目的方法。我知道这样做有点奇怪。但我正在做一个进化算法。所以Java正在创建c ++代码并用Java而不是c ++编译它。我只需要自动化它,所以我不必复制c ++代码并将其粘贴到.NET中并单击编译它。

所以我正在寻找一种方法来执行一系列命令行并在eclipse控制台中显示结果。我能这样做吗?

首先我需要设置Visual Studio环境,所以我需要首先运行这个批处理C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ vcvarsall.bat然后将目录更改为c ++项目并使用编译项目“cl.exe”然后“link.exe”。它们需要按特定顺序执行。

2 个答案:

答案 0 :(得分:2)

创建批处理文件并使用ProcessBuilder运行它。

   import java.io.*;
   import java.util.*;

   public class DoProcessBuilder {
     public static void main(String args[]) throws IOException {

       if (args.length <= 0) {
         System.err.println("Need command to run");
         System.exit(-1);
       }

       Process process = new ProcessBuilder(args).start();
       InputStream is = process.getInputStream();
       InputStreamReader isr = new InputStreamReader(is);
       BufferedReader br = new BufferedReader(isr);
       String line;

       System.out.printf("Output of running %s is:", 
          Arrays.toString(args));

       while ((line = br.readLine()) != null) {
         System.out.println(line);
       }

     }
    } 

答案 1 :(得分:1)

其中一个简单方法如下:

String[] cmd = new String[] { "yourcommand.exe", "argument1", "argument2", ... };
Process p = Runtime.exec(cmd);

您还可以找到其他变体here,(例如,通过指定环境和工作目录