java - 通过java程序从Linux服务器读取文件

标签 java linux file

我的 Java 程序正在 Windows 机器上运行。从这台 Windows 机器上,我需要从 Linux 服务器读取一个文件。 我已经编写了这段代码来对 Linux 服务器进行身份验证,并且它工作正常

session = jsch.getSession("root", "ServerIP", 22);
            session.setConfig("StrictHostKeyChecking", "no");
            session.setPassword("Passwrod");
            session.connect();
            System.out.println("Server is connect");

我可以看到“Server is connect”正在我的机器上打印,这意味着身份验证已通过服务器完成。 现在需要从这个服务器读取文件,我已经写了这段代码

try
            {
            File file = new File("/var/log//callrec/core1.log");
            LineNumberReader sc = new LineNumberReader(new FileReader(file));
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }

但是它抛出文件未找到异常。 任何人都可以指导我如何解决这个问题。

最佳答案

根据 http://www.jcraft.com/jsch/examples/ScpFrom.java.html ,你需要通过你的session对象在远程端执行命令,然后获取输入和输出流与远程命令通信,并通过这些 channel 读取文件元数据和内容:

...
String command = "scp -f /var/log/callrec/core1.log";
Channel channel = session.openChannel("exec");
((ChannelExec)channel).setCommand(command);

OutputStream out = channel.getOutputStream();
InputStream in = channel.getInputStream();

channel.connect();

// Now use in and out to read the file, 
// see http://www.jcraft.com/jsch/examples/ScpFrom.java.html for a complete example
...

关于java - 通过java程序从Linux服务器读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21132861/

相关文章:

C 加密 : Unable to check if number is prime using libgcrypt

javascript - Facebook、Google 和其他大型应用程序如何处理它们的 CSS 和 JavaScript 文件?

c# - 删除文件 vs 目录 + 重新创建性能

java - 使用iText(signdeferred)创建PDF数字签名,验证签名时出现invalid signature问题

java - 在文本字段上执行算术运算的事件监听器

linux - 如何在 mjpg-streamer 中保存电影?

c - GTK+ 如何通过提示请求 super 用户

java - Android获取GPS数据时能否将GPS数据写入CSV文件?

java - 如何使用 Spring MVC 和 Spring JdbcTemplate RowCallbackHandler 和流结果?

Java - 通过类中的方法更改数组的值