[如何使用Java程序的参数运行bat文件? (尝试使用命令行工具自动执行)

问题描述 投票:2回答:1

我正在尝试使用命令行工具“ Tarql”进行一些数据转换(提供csv和sparql查询,它将把csv文件转换为ttl格式)。

以下命令将转换我的数据:

\tarql-1.2\bin\tarql.bat --write-base --base http://ontologies.se.com/Proc GMap.sparql GMap.csv > gmap.ttl

到目前为止,我已经编写了运行tarql.bat文件的文件,但是我不确定如何在其中也包含其他命令。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;


public class ExecuteUsingProcessBuilder {
    public static void main(String[] args) {
        String[] command;
        ProcessBuilder pb = new ProcessBuilder("C:\\Users\\Desktop\\Procurment\\tarql-1.2\\bin\\tarql.bat");
        Process process = pb.start();

        BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        process.waitFor();
        System.out.println(sb);
    }
}

有人可以帮我,我觉得我做错了这件事。我想在我的aws lambda函数中使用此命令行工具。

java amazon-web-services batch-file cmd
1个回答
2
投票

这通常是我们将多个以空格分隔的命令传递给流程生成器的方式

ProcessBuilder pb = new ProcessBuilder("command", "command_arg1",
"command_arg2","command_arg3", "command_arg4", ...);

如果我正在运行“ ls -lrt / home / ubuntu / test”,则我的ProcessBuilder看起来像]

ProcessBuilder pb = new ProcessBuilder("ls", "-lrt",
"/home/ubuntu/test");
© www.soinside.com 2019 - 2024. All rights reserved.