Java 使用JSCH的SFTP中的未知位置

Java 使用JSCH的SFTP中的未知位置,java,jsch,oracle-data-integrator,Java,Jsch,Oracle Data Integrator,我在使用ind-Oracle Data Integrator的短脚本JSCH时遇到问题。 我想将文件从目录发送到服务器SFTP。 我的代码: 我得到一个错误: ODI-1590: The execution of the script failed. Caused By: org.apache.bsf.BSFException: BeanShell script error: Sourced file: inline evaluation of: `` import oracle.odi.km

我在使用ind-Oracle Data Integrator的短脚本JSCH时遇到问题。 我想将文件从目录发送到服务器SFTP。 我的代码:

我得到一个错误:

ODI-1590: The execution of the script failed. 
Caused By: org.apache.bsf.BSFException: BeanShell script error: Sourced file:
inline evaluation of: ``
import oracle.odi.km.exception.OdiKMException;
import com.jcraft.jsch.*;
J . . . '' Token Parsing Error: Lexical error at line 23, column 19. 
Encountered: "W" (87), after : "\"C:\\": <at unknown location>
BSF info: upload file at line: 0 column: columnNo
ODI-1590:脚本执行失败。
原因:org.apache.bsf.BSFException:BeanShell脚本错误:源文件:
在线评估:``
导入oracle.odi.km.exception.odikmeption;
导入com.jcraft.jsch.*;
“J…”令牌解析错误:第23行第19列的词法错误。
遇到:“W”(87),在“\”C:\”之后:
BSF信息:在第0行第0列上载文件

我做错了什么?

您必须避开本地路径
字符串中的反斜杠:

sftp.put("C:\\Tools\\tmp.html", "/var/temp/temp.html");
这是因为反斜杠本身会转义下一个字符,如果在
“C:\Tools\tmp.html”
中放置单个反斜杠,则结果(但不是)类似于
“C:oolsmp.html”
,这不太可能被视为有效路径

在我的IDE(eclipse)中,带有单个反斜杠的
字符串
被视为编译错误,代码甚至不编译

错误是:

线程“main”java.lang中出现异常。错误:未解决的编译问题: 无效的转义序列(有效的是\b\t\n\f\r\“\'\”\)
请尝试sftp.put(“C:/Tools/tmp.html”,“var/temp/temp.html”);尝试
sftp.put(“C:\\Tools\\tmp.html”,“/var/temp/temp.html”)@deHaar-您的解决方案很有帮助!谢谢您能解释一下为什么我必须使用“\\”而不是“\\”吗?或者您能给我一个文档链接来描述这一点吗?Oracle Data Integrator还有一个内置的sFTP工具,您可以在包或过程中使用,而无需自己编写代码。
sftp.put("C:\\Tools\\tmp.html", "/var/temp/temp.html");