2010-07-27 104 views
1

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

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

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

+0

我很好奇,为什么您需要在Visual Studio中为此执行任何操作,您可以使用Java调用可执行文件,并且可以从命令行执行Microsoft Visual C++编译器,并将参数和文件传递给参数进行编译。 – 2010-07-27 00:08:11

回答

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

其中一个简单的方法如下:

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

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

相关问题