Replies: 2 comments 2 replies
-
|
您好!感谢您的提问。 opendataloader-pdf CLI 同时支持相对路径和绝对路径,路径处理没有问题。 从您的错误信息来看,问题出在 Java 可以看到绝对路径 原因: 在 Java 中使用 解决方法: ❌ 错误写法(路径带引号): String path = "\"/home/data/abc/temp/pdfTmp/1772520094690/test01.pdf\"";✅ 正确写法(路径不带引号): String path = "/home/data/abc/temp/pdfTmp/1772520094690/test01.pdf";如果您使用的是 ProcessBuilder pb = new ProcessBuilder(
"java", "-jar", "opendataloader-pdf.jar",
"/home/data/abc/temp/pdfTmp/1772520094690/test01.pdf"
);如果使用 String[] cmd = {
"java", "-jar", "opendataloader-pdf.jar",
"/home/data/abc/temp/pdfTmp/1772520094690/test01.pdf"
};
Runtime.getRuntime().exec(cmd);请检查您的代码中传递路径参数时是否包含了多余的引号字符,去掉即可解决问题。 |
Beta Was this translation helpful? Give feedback.
-
|
您好!感谢您的详细补充信息。 回答您的问题
自动识别,不需要任何参数。 以 这正是您遇到问题的关键——下面解释为什么绝对路径没生效,而把文件放到脚本目录下却可以。 为什么绝对路径不生效?再看一下您的错误日志:
Java 判断绝对路径的方式是:第一个字符是不是 您传入的字符串实际上是 这不是 opendataloader-pdf 的行为,而是 Java 为什么放到脚本目录下就可以?当您把 为什么 Windows 没问题?Windows 判断绝对路径的方式是检查盘符(如 怎么验证和解决?第一步:确认问题 在您的 System.out.println("参数值: [" + path + "]");
System.out.println("首字符: [" + path.charAt(0) + "]");如果看到首字符是 第二步:去掉多余的引号 在构建命令参数时,不要给路径加引号。使用 // ❌ 路径参数中包含引号字符
String path = "\"" + inputPath + "\"";
// ✅ 直接使用路径
String path = inputPath;如果修改后仍有问题,欢迎贴出您 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
java程序中使用java.lang.Process执行命令行,报错:
[2026-03-03 14:41:38.063][Thread-20] [ERROR c.h.u.CrossPlatformJarExecutor:82]-WARNING: File or folder /home/abc/"/home/data/abc/temp/pdfTmp/1772520094690/test01.pdf" not found.
想问下,输出的pdf文件参数是相对路径吗?
Beta Was this translation helpful? Give feedback.
All reactions