2016-09-22 15 views
2

У меня есть код jsp df -h для отображения информации о диске на веб-сайте. Как я могу показать вывод html с таблицей? Ниже код:Выполнить команду linux в java и выводить вывод на таблицу 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 я исполню "ФР -h" он, показывая, как показано ниже:

[[email protected] 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 
[[email protected] apache-tomcat-7.0.32]# 

Но в HTML я, как показано ниже:

Output

Как я могу это исправить, или какой код мне нужно изменить?

+0

Рассмотрим, сколько раз линия 'диск = input.readLine() расщепляются ("\\ s +");' будет выполняться в. ваш код. – yole

+0

@yole это должно быть один раз, когда скрипт выполнит его, будет отображаться вся информация о диске из df -h –

+0

@IHarrisMarfel No. Подумайте еще раз. –

ответ

0

Вы должны переместить эту линию внутри while цикла:

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

 Смежные вопросы

  • Нет связанных вопросов^_^