obloader执行失败,只打印了部分日志

【 使用环境 】linux测试环境
【 OB or 其他组件 】obloader
【 使用版本 】4.0.1
【问题描述】单使用命令可以导入成功,使用Java程序调obloader命令只打印了部分日志,且命令执行失败。
【返回信息】2024-06-27 18:47:04 [INFO] Parsed args:
[–cut] true
[–ctl-path] ‘XXXX_20240627184646.ctl’
[–file-path] ‘XXXX_20240627184646.dat’
[–no-sys] true
[–log-path] ‘XXXX20240627184646’
[–column-splitter] ‘|@|’
[–host] XXXX
[–port] XXXX
[–user] ‘XXXX’
[–password] ******
[–database] XXXX
[–sys-user] root
[–table] [‘XXXX’]
2024-06-27 18:47:04 [INFO] Try to decrypt the sys password from the secure.crt
2024-06-27 18:47:04 [INFO] The security certificate file: “/data/obloader/ob-loader-dumper-4.0.1-SNAPSHOT/conf/secure.crt” is not exists

日志只打印了这些内容,是什么原因导致的?

看看文件是不是存在,以及对用用户的权限

这个文件不存在,这个是一个警告,我看其他老师说这个警告不影响程序运行。



代码中对命令并没有进行特殊的加工,为什么执行报错的日志里面有我项目所在的目录?

重新下载一个 官网最新的版本 试一下

已经是最新的了,4.0.1企业版的。

process = Runtime.getRuntime().exec(cmd);是这个代码的问题,obloader的参数中包含的单引号或者双引号被识别错误了,由String cmd 改成 String[] cmd 进行传值。