gpt4 book ai didi

java - 在 exec() 中处理\n 和\t - Java

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:47:40 25 4
gpt4 key购买 nike

我正在尝试使用 java 在 linux 中执行如下所示的 bcp 命令:

bcp  dbname..mytable in /home/guest/test -U guest -P guest -S LXXDB1D06 -I /opt/sybase/08/interfaces -c -Y -t \| -r \\n   

在 Java 类中,我这样做:

Runtime rt = Runtime.getRuntime();
Process p;
try {
p = rt.exec("bcp dbname..mytable in /home/guest/test -U guest -P guest -S LXXDB1D06 -I /opt/sybase/08/interfaces -c -Y -t \| -r \\n");
p.waitFor();
} catch(..){

..}

我尝试使用\|、"\"+"\n"和其他几个。但是没有用。正确的格式应该是什么?

编辑:使用 ProcessBuilder,它看起来像:

[bcp, pfactdbcpusdev01..gb_inactive_upc, in, C:\hs_data_dev_00\itm_mstr\tmp\usaupcinact_tmp_rollup, -U, inactupcUSD1, -P, inac01, -S, ACNLNXQ002D01, -I, C:\Program Files\Nielsen\Sybase\12.5.1/interfaces, -c, -t, |, -r, \n, -Y]

最佳答案

这是一个 super 经典的问题,坦率地说,我很惊讶你没有通过谷歌搜索找到解决方案......

解决方案是使用ProcessBuilder:

final ProcessBuilder pb = new ProcessBuilder("bcp", "dbname..mytable",
"in", "/home/guest/test",
"-U", "guest",
"-P", "guest",
"-S", "LXXDB1DO6",
"-I", "/opt/sybase/08/interfaces",
"-c",
"-Y",
"-t", "|",
"-r", "\\n"
);
final Process p = pb.start();

此外,您应该检查 .waitFor() 的结果。

同时查看 execve(2)execl(2) 和 friend 的联机帮助页。

关于java - 在 exec() 中处理\n 和\t - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35292070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com