怎么在java中执行linux 命令 netstat

如题所述

第1个回答  推荐于2016-07-22
Java 可以通过 Runtime 调用Linux命令,形式如下:
Runtime.getRuntime().exec(command)
但是这样执行时没有任何输出,因为调用 Runtime.exec 方法将产生一个本地的进程,并返回一个Process子类的实例

由于调用 Runtime.exec 方法所创建的子进程没有自己的终端或控制台,因此该子进程的标准IO(如stdin,stdou,stderr)都通过 Process.getOutputStream(),Process.getInputStream(), Process.getErrorStream() 方法重定向给它的父进程了。
用户需要用这些stream来向子进程输入数据或获取子进程的输出,下面的代码可以取到 linux 命令的执行结果:

try {
String[] cmd = new String[]{”/bin/sh”, “-c”, ” ls “};
Process ps = Runtime.getRuntime().exec(netstat);
BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append(”\n”);
}
String result = sb.toString();
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}本回答被提问者和网友采纳

怎么在java中执行linux 命令 netstat
Java 可以通过 Runtime 调用Linux命令,形式如下:Runtime.getRuntime().exec(command)但是这样执行时没有任何输出,因为调用 Runtime.exec 方法将产生一个本地的进程,并返回一个Process子类的实例 由于调用 Runtime.exec 方法所创建的子进程没有自己的终端或控制台,因此该子进程的标准IO(如stdin,std...

怎么在java中执行linux 命令 netstat -nat|grep -i "80"|wc -l_百度...
或许这就是你想要的package question.save;import java.io.InputStreamReader;import java.io.LineNumberReader;\/*** java在linux环境下执行linux命令,然后返回命令返回值。* @author lee*\/public class ExecLinuxCMD {public static Object exec(String cmd) {try {String[] cmdA = { \/bin\/sh, -c...

怎么在java中执行linux 命令 netstat -nat|grep -i "80"|wc -l_百度...
或许这就是你想要的package question.save;import java.io.InputStreamReader;import java.io.LineNumberReader;\/*** java在linux环境下执行linux命令,然后返回命令返回值。* @author lee*\/public class ExecLinuxCMD {public static Object exec(String cmd) {try {String[] cmdA = { \/bin\/sh, -c...

Java程序的问题
首先,你要知道一点,linux\/unix服务器的防火墙是通过维护iptables表进行的。其次,这个代码的大概意思是通过java启动netstart -nt命令进程去维护iptables表。具体的后面我会解释 netstart -nt命令就是远程启动命令行,然后在客户端输入的命令将会在服务器端运行。那么下面的问题就是使用java在客户端运行这个...

如何用java代码获取客户端的计算机名(并非jsp页面)
你为什么要获取计算机名,你的目的就是获取计算机名字吗 ?既然你要取到客户的ip,说明你已经连接上了客户的计算机,那么在java中运行一下dos,执行一下netstat -n命令,所返回的ip地址就都是你的连接ip了.知道ip后你就通过你的InetAddress.getByName(ip).getHostName();获取对方的计算机名字~...

Linux下查看一个进程占用了哪个端口的方法
当然,对于在java虚拟机中运行的进程,比如hadoop的守护进程,可以直接用jsp命令查看: $ jps grep Name 或者已经知道进程的确切名称,可以用pidof查看: $ pidof Name 查看到进程id之后,使用netstat命令查看其占用的端口: $ netstat -nap grep pid ...

linux服务器杀死端口命令
在Linux服务器上,当Java应用部署在Tomcat容器中并需要频繁重启时,通常会使用"sh shutdown.sh"命令。然而,这个命令有时不足以彻底关闭Tomcat,这时就需要借助kill命令,通过进程号来实施操作。寻找进程号的命令是"ps -ef | grep tomcat",然后输入相应的PID执行"kill -9"。尽管kill命令强大,但遇到...

如何看懂《Linux多线程服务端编程
即Java NIO的方式。d:Leader\/Follower等高级模式。在默认情况下,我会使用第3种,即non-blocking IO + one loop per thread模式来编写多线程C++网络服务程序。1:one loop per thread此种模型下,程序里的每个IO线程有一个event loop,用于处理读写和定时事件(无论周期性的还是单次的)。代码框架跟“单线程服务器...

Linux系统监控要用到哪些命令
记录一下自己常用的linux系统命令,方便以后查阅,发觉记忆越来越不行了 找到最耗CPU的java线程ps命令 命令:ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid 结果展示:这个命令的作用,主要是可以获取到对应一个进程下的线程的一些信息。 比如你想分析一下一个java进程的一些运行瓶颈点,可以...

linux如何查看端口被哪个进程占用
ps -aux | grep tomcat 发现并没有8080端口的Tomcat进程。使用命令:netstat –apn 查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID\/Program name 发现8080端口被PID为9658的Java进程占用。进一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 查看 就可以明确...

相似回答