从java调用pg_dump时,命令行参数太多
在使用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中,使用:
Runtime.getRuntime().exec();
我已经尝试过使用Process.start()
但是也遇到了同样的错误,所以我对我做错了什么完全傻了。
在此更改之前, pg_dump
正在作为单个字符串正确执行。 我不想回到那个方法,因为我想保持一致性,但我也想弄清楚我在这里做错了什么。
您应该在输出文件名之前使用-f,因为默认情况下pg_dump输出到stdout。
尝试
[时间,./pg_dump,-U,lehigh,-d,lehigh,-Fc,-f,data / completedDb.dump]
- 设计问题:我应该在多大程度上依赖控制流程的例外?
- JAVA:填充框架的方法。 add(),setContentPane(),getContentPane()
- 如何在IntelliJ Idea中禁用Gradle守护进程?
- ClassNotFoundException:com.mysql.jdbc.Driver。 用于Web应用程序的JDBC MySQL驱动程序
- 从另一个不同包的实例的子类调用protected方法
- 键入参数vs无界通配符
- TCP客户端和服务器,使用objectstreams的cmd提示符
- 如何在Java VisualVM中查看内存分配堆栈跟踪
- Java SSL connect,以编程方式将服务器证书添加到密钥库