Execute linux command in java and display output to html table

戏子无情 提交于 2019-12-22 23:07:51

问题


I have jsp code df -h for display disk information on the website. How can I show the output to html with table? Below the code:

String[] disk;
String line;
String process;
Process p;
BufferedReader input;
    p = Runtime.getRuntime().exec("df -h");
    input = new BufferedReader(new InputStreamReader(p.getInputStream()));
    input.readLine();
    disk = input.readLine().split("\\s+");
<%      
<tr bgcolor="#f0f0f0">
        <td colspan="2">
            <b>Disk</b>
        </td>
        <td align="center">
            <b>Size<b>
        </td>
        <td align="center">
            <b>Used<b>
        </td>
        <td align="center">
            <b>Avail<b>
        </td>
        <td align="center">
            <b>Use%<b>
        </td>
        <td align="center">
            <b>Mount<b>
        </td>
    </tr>
    while ((line = input.readLine()) != null) {
%>
        <tr>
        <td colspan="2"><% out.println(disk[0]); %></td>
        <td align="center"><% out.println(disk[1]); %></td>
        <td align="center"><% out.println(disk[2]); %></td>
        <td align="center"><% out.println(disk[3]); %></td>
        <td align="center"><% out.println(disk[4]); %></td>
        <td align="center"><% out.println(disk[5]); %></td>
        </tr>
<%
        }
    input.close(); 
%>

when on linux I execute "df -h" it showing like below:

[root@svr1 apache-tomcat-7.0.32]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/centos_svr1-root   29G  5.3G   23G  19% /
devtmpfs                      1.9G     0  1.9G   0% /dev
tmpfs                         1.9G     0  1.9G   0% /dev/shm
tmpfs                         1.9G   17M  1.9G   1% /run
tmpfs                         1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/vda1                     497M  163M  334M  33% /boot
tmpfs                         380M     0  380M   0% /run/user/0
[root@svr1 apache-tomcat-7.0.32]#

But at html I got like below:

How I can fix it, or what code that I need to change?


回答1:


You need to move this line inside the while loop:

disk = input.readLine().split("\\s+");


来源:https://stackoverflow.com/questions/39632121/execute-linux-command-in-java-and-display-output-to-html-table

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!