将文件从 Windows Java 应用程序移动到 Linux 盒子
我目前正在做一个必须在 Windows 机器上运行的项目。该应用程序创建一个 CSV 文件并将其保存到 Windows 文件系统。我想要一种方法将此文件传输到运行 linux 的计算机到用户选择的目录中。
我不是在要求代码(尽管如果它有帮助,那就随意:P),而是询问更多要使用的协议(ftp等)以及我是否需要考虑任何事情,例如Linux中的权限,因为我相当有经验Linux 文件系统编程。
提前致谢 :)
I'm currently doing a project that has to be run on a windows machine. The application creates a CSV file and saves it to the windows filesystem. I would like a way to transfer this file to a machine running linux into a directory selected by the user.
I am not asking for code (although if it helps then feel free :P ) but asking more for what protocols to use (ftp etc) and wether I need to take anything into account such as permissions in Linux as I am fairly in experienced with programming for linux file systems.
Thanks in advance :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
windows机器可以看到linux文件系统吗? Linux 机器上是否有运行 samba 服务器?如果是这样,您只需将其从一个文件系统复制到另一个文件系统即可。
如果没有,您可以尝试 SCP 或 SFTP,但需要设置密钥。另一种方法是使用 Runtime.exec 来使用 Windows 特定命令实用程序复制文件。
如果所有其他方法都失败,请在 Linux 服务器上运行 java 进程并使用 sockets< /a>. Windows 客户端可以将文件写入套接字,Linux 服务器也可以将其写出。
Can the windows machine see the linux filesystem? Is there a samba server running on the linux machine? If so, you can simply copy it from one filesystem to the other.
If not, you can try SCP or SFTP but you need to have the keys setup. Another way is to use
Runtime.exec
to copy the file using a windows specific command utility.If all else fails, run a java process on the linux server and connect to it using sockets. Your windows client can write the file to the socket and it can be written out by the linux server.
我会尝试使用 SSH,因为 SCP 是一种相当标准且方便的安全传输文件的方法。在 Java 中,您可以使用 jssh 和其他库。
I would try using SSH as SCP is a fairly standard and convenient way to transfer files securely. In Java you can use jssh amoungst other libraries.
如果您不想以编程方式执行此操作,我建议使用 Rsync。它应该适用于大多数 *nix 发行版,并且您有一个名为 DeltaCopy 的 Windows 版本实现相同的协议。
If you don't want to do it programatically, I'd suggest using Rsync. It should be available for most *nix distros and you've got a Windows version called DeltaCopy that implements the same protocol.