⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 processus.java

📁 这是一个在linux环境下
💻 JAVA
字号:
package fr.umlv.projet.IG;import java.io.File;import java.io.FileNotFoundException;import java.io.UnsupportedEncodingException;import java.util.Scanner;public class Processus {	private int pid;	private String name;	private String state;	private String ppid;	private String tgid;	private String sleepAVG;	private String tpid;	private String tracePid;	private String uid;	private String gid;	private String user;	private String fdsize;	private String vmSize;	private String vmLck;	private String vmRss;	private String vmData;	private String vmStk;	private String vmExe;	private String vmLib;	private String vmPTE;	private String threads;	private String cmdLine;	private String meminfo;	private String cpuinfo;		public static native String getUserName(int pid);		static{		System.loadLibrary("testjni");	}		public static String changeFloatSize(float value,int size){		String s = new String(value+"");		int index=0;		for(int i = 0;i<s.length();i++)			if(s.charAt(i)=='.'){				index = i;				break;			}		String s1 = s.substring(0,index+size+1);		return s1;	}	public synchronized void enregistreData(Scanner sc){		String s = sc.next();		if(s.contains("Name"))			this.name = sc.next();		if(s.contains("State"))			this.state = sc.next();		if(s.contains("PPid"))			this.ppid = sc.next();		if(s.contains("Uid")){			sc.next();			this.uid = sc.next();			int i = Integer.parseInt(this.uid);			this.user = getUserName(i);		}		if(s.contains("Gid"))			this.gid = sc.next();		if(s.contains("TracePid"))			this.tracePid = sc.next();		if(s.contains("SleepAVG"))			this.sleepAVG = sc.next();		if(s.contains("Tgid"))			this.tgid =sc.next();		if(s.contains("FDSize"))			this.fdsize = sc.next();		if(s.contains("VmSize"))			this.vmSize = sc.next(); 		if(s.contains("VmLck"))			this.vmLck = sc.next();		if(s.contains("VmStk"))			this.vmStk = sc.next();		if(s.contains("VmRSS"))			this.vmRss = sc.next();		if(s.contains("VmData"))			this.vmData = sc.next();		if(s.contains("VmExe"))			this.vmExe = sc.next();		if(s.contains("VmLib"))			this.vmLib = sc.next();		if(s.contains("VmPTE"))			this.vmPTE = sc.next();		if(s.contains("Threads"))			this.threads = sc.next();	}		public void traiterData(){		float Rss = Float.parseFloat(vmRss);		float memTotal = Float.parseFloat(Meminfo.getMemTotal());		float mem = (Rss/memTotal)*100.0f;		this.meminfo = changeFloatSize(mem,2);	}		public Processus(int pid) {		this.pid = pid;		String path1 = "/proc/"+pid+"/status";		String path2 = "/proc/"+pid+"/cmdline";		try {			Scanner sc1 = new Scanner(new File(path1));			while(sc1.hasNext()){				enregistreData(sc1);			}			Scanner sc2 = new Scanner(new File(path2));			while(sc2.hasNext()){				try {					this.cmdLine = new String(sc2.next().getBytes("UTF-8"),"US-ASCII");				} catch (UnsupportedEncodingException e) {					e.printStackTrace();				}			}					} catch (FileNotFoundException e) {			e.printStackTrace();		}		traiterData();	}		public int getPid(){		return pid;	}		public String getName(){		return name;	}		public String getState(){		return state;	}		public String getPpid(){		return ppid;	}		@Override	public String toString() {		StringBuilder sb = new StringBuilder();		sb.append(pid);		sb.append(name);		sb.append(state);		sb.append(ppid);		return sb.toString();	}		public static void main(String[] args){		System.out.println(Meminfo.getMemTotal());		Processus pro = new Processus(4217);		Processus pro1 = new Processus(1);//		System.out.println(pro.uid+" "+pro.uid.length());		System.out.println("hehe"+pro1.getCmdLine().charAt(6)==pro1.getCmdLine().charAt(7)+"haha");		System.out.println(pro.getCmdLine()+" "+pro.getCmdLine().length());	}	public String getFdsize() {		return fdsize;	}	public String getGid() {		return gid;	}	public String getSleepAVG() {		return sleepAVG;	}	public String getTgid() {		return tgid;	}	public String getThreads() {		return threads;	}	public String getTpid() {		return tpid;	}	public String getTracePid() {		return tracePid;	}	public String getUid() {		return uid;	}	public String getUser() {		return user;	}	public String getVmData() {		return vmData;	}	public String getVmExe() {		return vmExe;	}	public String getVmLck() {		return vmLck;	}	public String getVmLib() {		return vmLib;	}	public String getVmPTE() {		return vmPTE;	}	public String getVmRss() {		return vmRss;	}	public String getVmSize() {		return vmSize;	}	public String getVmStk() {		return vmStk;	}	public String getCmdLine() {		return cmdLine;	}	public String getCpuinfo() {		return cpuinfo;	}	public String getMeminfo() {		return meminfo;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -