如何在Windows操作系统中使用java程序执行windows命令

时间:2017-08-30 14:05:25

标签: java gradle

我想要在一大堆项目上建立导入日食。我知道,我们可以在settings.gradle文件中包含我们要构建的项目。但是在我的工作区域有这个限制。

所以我想的是,而不是通过去每个项目进行gradle构建。我想用java程序自动执行此操作。

我尝试使用以下java程序执行基本的Windows命令执行:

import java.io.BufferedReader;
import java.io.InputStreamReader;      
public class Windows {    

    public static void main(String[] args) {

        Windows obj = new Windows();    

        String output = obj.executeCommand("ipconfig");

        System.out.println(output);

    }

    private String executeCommand(String command) {

        StringBuffer output = new StringBuffer();

        Process p;
        try {
            p = Runtime.getRuntime().exec(command);
            p.waitFor();
            BufferedReader reader =
                            new BufferedReader(new InputStreamReader(p.getInputStream()));

            String line = "";
            while ((line = reader.readLine())!= null) {
                output.append(line + "\n");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

        return output.toString();    
    }
}

所以,在上面的程序中,如果我将命令设为gradle build则不起作用 你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

由于您已经在使用Gradle,为什么不在gradle中解决这个问题?

选项1:将所有内容放入multi-project build

选项2:从多个单独的版本中创建composite build

选项3:创建一个“超级”gradle构建,使用GradleBuild任务调用其他构建

apply plugin: 'base'

def buildDirs = ['dir1', 'dir2', 'dir3']

buildDirs.each { buildDir ->
   Task task = tasks.create(name: "build${buildDir.capitialize()}", type: GradleBuild) {
      dir = buildDir
      tasks = ['build']
   }
   build.dependsOn task
}