我正在寻找一种在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”。它们需要按特定顺序执行。
答案 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,(例如,通过指定环境和工作目录
)