当前位置:  开发笔记 > 编程语言 > 正文

从Java调用pg_dump时命令行参数过多

如何解决《从Java调用pg_dump时命令行参数过多》经验,为你挑选了1个好方法。

在遇到一些问题后,我使用Java中的字符串对Postgres执行一些查询,然后我使用了字符串数组,这解决了我现有的问题。

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

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

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

我收到以下错误:

pg_dump:命令行参数太多(第一个是“ 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

我正在使用Eclipse在Postgres数据库上的Java中通过eclipse运行此命令:

 Runtime.getRuntime().exec();

我尝试使用,Process.start()但遇到了相同的错误,所以我对自己做错的事完全感到震惊。

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



1> Jack..:

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

尝试

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

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有