当我在Mac OS中运行这样的代码时:
Runtime.getRuntime.exec("open testFile.pdf");
Mac OS将运行Acrobat以打开本地PDF文件。
当文件在远程计算机上时,我该怎么办?
\\remoteHost\share\testFile.pdf
我试着这样做:
Runtime.getRuntime.exec("open \\\\remoteHost\\share\\testFile.pdf");
但我失败了。
谢谢!
答案 0 :(得分:0)
Runtime.getRuntime().exec(String)
只需将String传递给操作系统即可处理。所以,如果你想运行命令
open \\remoteHost\share\testFile.pdf
你必须将它传递给exec()。记得逃避\(将每个\替换为\\)
Runtime.getRuntime().exec("open \\\\remoteHost\\share\\testFile.pdf");
当然,运行程序的用户应该具有远程计算机的权限。如果需要设置其他用户,请使用open program命令行参数。
答案 1 :(得分:0)
我不认为在使用 open 命令时可以直接指定SMB共享的路径。如果要使用 open ,则必须将该共享作为本地目录挂载。有关说明,请参阅http://osxdaily.com/2009/09/24/access-and-mount-an-smb-share-via-command-line/。
这样的解决方案会非常脆弱。如果你想要一个更可靠的解决方案,我建议使用JCIFS(http://jcifs.samba.org/)在本地下载文件,然后使用
Desktop.getDesktop().open(pdfFile);
打开下载的文件。