【问题标题】:Moving a file from a windows Java application to a linux box将文件从 Windows Java 应用程序移动到 linux 机器
【发布时间】:2011-02-10 09:23:06
【问题描述】:
我目前正在做一个必须在 Windows 机器上运行的项目。应用程序创建一个 CSV 文件并将其保存到 windows 文件系统。我想要一种将这个文件传输到运行 linux 的机器上的方法到用户选择的目录中。
我不是要代码(尽管如果它有帮助,那么请随意:P),而是要更多地询问要使用的协议(ftp 等)以及我是否需要考虑任何事情,例如 Linux 中的权限,因为我是公平的有linux文件系统编程经验。
提前谢谢:)
【问题讨论】:
标签:
java
windows
linux
filesystems
【解决方案1】:
windows机器能看到linux文件系统吗? linux机器上是否有运行samba服务器?如果是这样,您可以简单地将其从一个文件系统复制到另一个文件系统。
如果没有,您可以尝试 SCP 或 SFTP,但您需要设置密钥。另一种方法是使用Runtime.exec 使用特定于Windows 的命令实用程序来复制文件。
如果一切都失败了,请在 linux 服务器上运行一个 java 进程并使用sockets 连接到它。你的windows客户端可以将文件写入socket,也可以由linux服务器写出。
【解决方案2】:
我会尝试使用 SSH,因为 SCP 是一种相当标准且方便的安全传输文件的方式。在 Java 中,您可以在其他库中使用 jssh。
【解决方案3】:
如果您不想以编程方式执行此操作,我建议您使用Rsync。它应该适用于大多数 *nix 发行版,并且您有一个名为 DeltaCopy 的 Windows 版本,它实现了相同的协议。