【问题标题】:Read a file on Linux server through java program running in Windows env通过在 Windows 环境中运行的 java 程序读取 Linux 服务器上的文件
【发布时间】:2014-02-25 20:51:18
【问题描述】:

我有一个简单的 Java 程序,它可以读取文件并将其写入 Eclipse 工具中的控制台。我是
尝试执行相同的 java 程序来读取远程 Linux 服务器上的文件。请帮助我如何实现它?

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;

public class Test {     
public static void main(String[] args){
    String path = "C:/tmp"; 
    String file = "java2502201411.txt"; 
      try
      {
      FileInputStream in = new FileInputStream(path + "/" + file);
      BufferedReader br = new BufferedReader(new InputStreamReader(in));
      String strLine; 
      while((strLine = br.readLine())!= null)
      {
       System.out.println(strLine);
      }
      }catch(Exception e){
       System.out.println(e);
      } 
   }  
}

我可以从网络中的其他 Windows 环境调用文件。例如:我正在尝试读取我的 Windows 网络上的文件,例如 usmnp1804 终端。 字符串路径 = "//usmnp1804/C$/tmp"。以类似的方式,我试图读取 Linux 服务器上的文件,但它没有按预期工作,出现诸如 File not found Exception 之类的错误。我怀疑我的 java 程序无法访问 Linux 服务器路径。请帮忙。 字符串路径 = "/home/jctadm/tmp"。

谢谢 拉杰

【问题讨论】:

  • 代码是否在 Windows 机器上运行并试图打开从 linux cifs 服务器共享的文件?另外:不要使用path + "/" + file命名文件名,使用new File(new File(path), file)

标签: java linux windows eclipse core


【解决方案1】:

Java 无法以本机方式打开跨 CIFS 共享的文件。您必须使用客户端库。 JCIFS 似乎是事实上的标准。 Apache Commons Virtual File System 也支持这一点。两者在 SO 上都有标签:

【讨论】:

    【解决方案2】:

    此示例可能会有所帮助,这是使用 VFS 通过 SFTP 协议从远程系统检索文件的基本示例。检索匹配指定正则表达式的文件。

    http://wiki.apache.org/commons/SimpleSftpFileDownload

    【讨论】:

      猜你喜欢
      • 2014-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多