如何获得完整的命令结果;top-c-b-n 1“;通过java,Runtime.getRuntime().exec(命令)

如何获得完整的命令结果;top-c-b-n 1“;通过java,Runtime.getRuntime().exec(命令),java,linux,shell,Java,Linux,Shell,我想通过java获得命令“top-c-b-n1”的结果,Runtime.getRuntime().exec(command), 但是进程列表的命令列被压缩为“/usr/lib/x+”! 如何获得直接在linux终端上执行的complete类似结果的命令?提到了一个-w COLS选项来指定它试图格式化输出的列数: $ top -c -b -n 1 -w 1000 | head -n10 top - 05:01:40 up 19 days, 13:29, 1 user, load average

我想通过java获得命令“top-c-b-n1”的结果,Runtime.getRuntime().exec(command), 但是进程列表的命令列被压缩为“/usr/lib/x+”! 如何获得直接在linux终端上执行的complete类似结果的命令?

提到了一个
-w COLS
选项来指定它试图格式化输出的列数:

$ top -c -b -n 1 -w 1000 | head -n10
top - 05:01:40 up 19 days, 13:29,  1 user,  load average: 1.62, 1.49, 1.43
Tasks: 287 total,   2 running, 285 sleeping,   0 stopped,   0 zombie
%Cpu(s):  7.5 us,  3.1 sy,  0.0 ni, 89.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 32771952 total,   742552 free,  9000236 used, 23029164 buff/cache
KiB Swap:        0 total,        0 free,        0 used. 23029384 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 4227 qemu      20   0 10.628g 5.797g   4688 S 112.5 18.5  34262:17 /usr/libexec/qemu-kvm -name test-vm -S -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off -cpu Nehalem -m 6144 -realtime mlock=off -smp 3,sockets=3,cores=1,threads=1 -uuid A5A5DC7B-3F35-40F9-B799-954D5411A219 -nographic -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/test-vm.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-p+
  84 root      25   5       0      0      0 R  68.8  0.0  13144:24 [ksmd]
2834 andrew    20   0  130180   1888   1284 R   6.2  0.0   0:00.02 top -c -b -n 1 -w 1000
...

现在,它在大约500个字符后被截断,但希望这就足够了。

您可能会发现从/proc读取此类数据更容易。这个问题与Java无关,它是UNIX或首要问题。w有帮助吗?