gpt4 book ai didi

java - 从 Java 调用 pg_dump 时命令行参数太多

转载 作者:行者123 更新时间:2023-11-29 11:56:44 24 4
gpt4 key购买 nike

在为 postgres 在 Java 中将一些查询作为字符串执行时遇到问题后,我开始使用字符串数组,这解决了我现有的问题。

切换后,我现在遇到了 pg_dump 问题,但 pg_restore 没有问题。

当我为我的方法提供以下数组时:

[time, ./pg_dump, -U, lehigh, -d, lehigh, -Fc, data/completedDb.dump]

我收到以下错误:

pg_dump: too many command-line arguments (first is "data/completedDb.dump")

ProcessBuilder 为我的执行生成以下内容:

time ./pg_dump -U lehigh -d lehigh -Fc data/completedDb.dump

当我在命令行上添加输出箭头并删除数据文件夹时,它工作正常。

time ./pg_dump -U lehigh -d lehigh -Fc > completedDb.dump

我在 postgres 数据库上的 Java 中通过 eclipse 运行它,使用:

 Runtime.getRuntime().exec();

我已经尝试使用 Process.start() 但遇到了同样的错误,所以我对自己做错了什么感到完全傻眼。

在此更改之前,pg_dump 作为单个字符串正确执行。我不想回到那种方法,因为我想保持一致性,但我也想弄清楚我在这里做错了什么。

最佳答案

您应该在输出文件名前使用 -f,因为默认情况下 pg_dump 输出到标准输出。

尝试

[时间, ./pg_dump, -U, lehigh, -d, lehigh, -Fc, -f, data/completedDb.dump]

关于java - 从 Java 调用 pg_dump 时命令行参数太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34560868/

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