在 java 中执行 linux 命令并将输出显示到 html table
Execute linux command in java and display output to html table
我有 jsp 代码 df -h
用于在网站上显示磁盘信息。
如何使用 table 显示 html 的输出?
代码下方:
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();
%>
在 linux 我执行“df -h”时显示如下:
[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]#
但是在 html 我得到了如下结果:
我该如何修复它,或者我需要更改哪些代码?
您需要在 while
循环内移动此行:
disk = input.readLine().split("\s+");
我有 jsp 代码 df -h
用于在网站上显示磁盘信息。
如何使用 table 显示 html 的输出?
代码下方:
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();
%>
在 linux 我执行“df -h”时显示如下:
[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]#
但是在 html 我得到了如下结果:
我该如何修复它,或者我需要更改哪些代码?
您需要在 while
循环内移动此行:
disk = input.readLine().split("\s+");