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

标签 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”。它们需要按特定顺序执行。

最佳答案

创建批处理文件并使用 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);
       }

     }
    } 

关于java - 有没有办法用java来执行一系列的命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3339850/

相关文章:

linux shell流重定向直接运行命令列表

java - 如何更改 JVM 默认堆设置

java - 从 ObjectStream 读取 java.sql.Timestamp 对象而不更改时间值?

c++ - DirectX 碰撞测试。 - 自己造引擎值得吗?

c++ - 在 vs2008 中升级后检测到堆损坏

linux - 当我使用特定用户 SSH 登录树莓派时,它总是以 root 用户身份登录,而不是该用户身份

java - 是否有针对动态队列集的万无一失的健全性检查

java - 使用 spring mvc 从子 jsp 中选择值到父级

c++ - MSVC 直接构造函数调用扩展

git - 从命令行推送到 GitHub 时如何播放自定义 MP3?