网上搜的都不靠谱,自己整一个
package utility;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import javax.management.Query;
import java.lang.management.ManagementFactory;
import java.net.InetAddress;
import java.util.*;
/**
* Created by tanmingxin on 2017/9/18.
*/
public class SystemInfo {
public static TomcatInfo getInfo() throws Exception {
String[] ph = ManagementFactory.getRuntimeMXBean().getName().split("@");
SystemInfo.TomcatInfo tomcatInfo = new SystemInfo.TomcatInfo();
tomcatInfo.setPid(ph[0]);
tomcatInfo.setHostname(ph[1]);
tomcatInfo.setHostaddress(InetAddress.getLocalHost().getHostAddress());
MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
Set<ObjectName> names = mBeanServer.queryNames(new ObjectName("Catalina:type=Connector,*"), Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
for (Iterator<ObjectName> i = names.iterator(); i.hasNext(); ) {
ObjectName obj = i.next();
Object scheme = mBeanServer.getAttribute(obj, "scheme");
String port = obj.getKeyProperty("port");
tomcatInfo.setPort(port);
tomcatInfo.setScheme(Objects.isNull(scheme) ? null : scheme.toString());
}
return tomcatInfo;
}
public static class TomcatInfo {
private String port; // ie. <Connector port="8080"
private String scheme; // http or https
private String pid; // tomcat prosess id
private String hostname; // machine name
private String hostaddress; // ip
public TomcatInfo () {}
public TomcatInfo(String port, String scheme, String pid, String hostname, String hostaddress) {
this.port = port;
this.scheme = scheme;
this.pid = pid;
this.hostname = hostname;
this.hostaddress = hostaddress;
}
public String getPort() {
return port;
}
public void setPort(String port) {
this.port = port;
}
public String getScheme() {
return scheme;
}
public void setScheme(String scheme) {
this.scheme = scheme;
}
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
public String getHostname() {
return hostname;
}
public void setHostname(String hostname) {
this.hostname = hostname;
}
public String getHostaddress() {
return hostaddress;
}
public void setHostaddress(String hostaddress) {
this.hostaddress = hostaddress;
}
@Override
public String toString() {
return "TomcatInfo{" +
"port='" + port + '\'' +
", scheme='" + scheme + '\'' +
", pid='" + pid + '\'' +
", hostname='" + hostname + '\'' +
", hostaddress='" + hostaddress + '\'' +
'}';
}
}
}