向WinSCP提供命令

时间:2012-08-22 14:41:24

标签: java runtime.exec winscp

我有Java Code启动WinSCP工具的过程并连接到Unix机器,然后调用位于Unix机器上的xxxx.exe。

问题是xxxx.exe接受File类型的参数。所以我需要将其上传到远程计算机,然后传递给失败的xxxx.exe .... 我试图避免使用临时文件夹。

小代码

Process p = Runtime.getRuntime().exec("rTool\\WinSCP.com /script=folder\\code.txt < C:\\FILESTOUPLOADS\\upload1.txt" );

登录信息在code.txt支持WinSCP.com

2 个答案:

答案 0 :(得分:1)

文件重定向(即“&lt;”符号)由命令处理器处理,Runtime.exec()不使用。正如已经在注释中提到的那样,首先使用exec的String []版本,这样就不会遇到命令解析问题。第二,你需要调用命令处理器来处理文件重定向(例如使用“cmd.exe / k”)或java中的handle it yourself

答案 1 :(得分:0)

为什么不使用ProcessBuilder来更改工作目录并从该目录设置文件的路径

  

public ProcessBuilder目录(文件目录)设置此进程构建器的工作目录。随后由此对象的start()方法启动的子进程将使用此作为其工作目录。参数可以为null - 这意味着使用当前Java进程的工作目录(通常是系统属性user.dir命名的目录)作为子进程的工作目录。

     

参数:   directory - 新的工作目录   返回:   此流程构建器