简体   繁体   English

如何使用Java导出终端ubuntu输出txt文件

[英]How to export terminal ubuntu output txt file using java

I would ask you something, how to export terminal output to txt file using java programming. 我想问一下,如何使用Java编程将终端输出导出到txt文件。 Because I want to test log automattically using webdriver this is my code. 因为我想使用webdriver自动测试日志,所以这是我的代码。

public class Test5 
{
    private static WebDriver webDriver;

    public static void main(String[] args) throws AWTException, InterruptedException, JSchException, IOException 
    {
        String host = "host";
        String user = "user";
        String password = "password";
        String command1 = "ssh app@host.com";

        String userPC = System.getProperty("user.name");
        String path = "/home/" + userPC + "/Desktop/ScreenShot/Downloads/";
        FirefoxProfile profile = new FirefoxProfile();
        profile.setPreference("browser.download.folderList", 2);
        profile.setPreference("browser.download.dir", path);
        profile.setPreference("browser.helperApps.neverAsk.saveToDisk",
                "application/pdf, text/csv, application/csv, application/octet-stream, text/plain, text/pdf, application/vnd.google-earth.kml+xml");
        webDriver = new FirefoxDriver(profile);

        Link links = Link.trd;

        webDriver.get("http://app." + links + ".ams:8080/admin/loginservice.do");



        Thread.sleep(1500);
        webDriver.close();

        java.util.Properties config = new java.util.Properties();
        config.put("StrictHostKeyChecking", "No");
        //config.put("PreferredAuthentications", "password");
        JSch jsch = new JSch();
        com.jcraft.jsch.Session session = jsch.getSession(user, host, 22);
        session.setPassword(password);
        session.setConfig(config);
        //session.setConfig("PreferredAuthentications", "password");
        session.connect();

         Channel channel = session.openChannel("shell");
            channel.connect();
        Expect expect = new ExpectBuilder()
                .withOutput(channel.getOutputStream())
                .withInputs(channel.getInputStream(), channel.getExtInputStream())
                .withEchoOutput(System.out)
                .withEchoInput(System.err)
                .build();

        expect.sendLine("less /app/logs/jboss/server.log > qwetest103.txt");
        Thread.sleep(1000);


        PrintStream out = new PrintStream(new FileOutputStream("/home/"+userPC+"/Desktop/ScreenShot/Log/text.txt"));
        System.setOut(out);

        String format = "jpg";


        Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
        BufferedImage screenFullImage = robot.createScreenCapture(screenRect);
        ImageIO.write(screenFullImage, format, new File("/home/"+userPC+"/Desktop/ScreenShot/Log/Log"+new Date()+".png"));


    }
}

can you help my to solve my problem? 你能帮我解决我的问题吗?

Regards 问候

that's quite easy. 那很容易。 Write the below code: 编写以下代码:

PrintStream out = new PrintStream(new FileOutputStream("/urlocation/output.txt"));
System.setOut(out);

This will save ur console output to a text file named output.txt. 这会将您的控制台输出保存到名为output.txt的文本文件中。 Hope it will help u. 希望对您有帮助。

one more thing, 还有一件事,

where u put these two line, it will take console log to file after that line. 您将这两行放在哪里,它将控制台日志记录到该行之后的文件中。 If u put these two line at top, it will capture all log from there to file . 如果您将这两行放在顶部,它将捕获所有日志到文件。 write these two line before declaring webdriver. 在声明webdriver之前写这两行。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM