1、在远程server里搭建一个>
import javaioFile;
import javaioFileFilter;
import javautilHashMap;
import javautilMap;
public class T1 {
/存放文件后缀 对应的大小/
private static final Map<String, Long> sizeMap = new HashMap<String, Long>();
/存放文件后缀 对应的个数/
private static final Map<String, Integer> countMap = new HashMap<String, Integer>();
public static void main(String[] args) {
String path = "F:";
filter(path);
for(String key :sizeMapkeySet()) {
Systemoutprintln("后缀:" + key + "\t字节:" + (sizeMapget(key)==null0:sizeMapget(key)) + "\t个数为" + (countMapget(key)==null0:countMapget(key)));
}
}
public static void filter(String path){
File file = new File(path);
filelistFiles(new FileFilter() {
@Override
public boolean accept(File f) {
if(fisDirectory()) {
filter(fgetPath());
return false;
}
String fileName = fgetName();
if(fileNameindexOf("") == -1) {
return false;
}
String suffix =fileNamesplit("\\")[1];//获得文件后缀
//把文件后缀相同的字节数相加
Long size = (sizeMapget(suffix)==null0:sizeMapget(suffix)) + flength();
sizeMapput(suffix, size);
//把文件后缀相同的个数相加
Integer count = (countMapget(suffix)==null0:countMapget(suffix)) + 1;
countMapput(suffix, count);
return false;
}
});
}
}
运行结果太长了,我随便截取点吧:
后缀:1-1 字节:1820 个数为2
后缀:dll_2016-05-23_000 字节:345 个数为1
后缀:dat 字节:20253796 个数为28
后缀:1-2 字节:1302 个数为2
后缀:md 字节:53548 个数为4
后缀:MF 字节:1105 个数为10
后缀:html 字节:745985 个数为75
后缀:lrc 字节:6872 个数为6
后缀:9-2 字节:1478 个数为2
后缀:dll_2016-03-31_000 字节:55 个数为1
后缀:9-3 字节:1436 个数为2
后缀:all 字节:3003366 个数为4
后缀:66b 字节:6786365 个数为1
后缀:withoutimage 字节:383536 个数为4
后缀:eclipse 字节:27666 个数为104
后缀:woff 字节:437588 个数为20
后缀:spr 字节:15084930 个数为311
后缀:mdl 字节:79521996 个数为487
后缀:m3d 字节:199680 个数为3
后缀:JPG 字节:261216 个数为113
后缀:fgd 字节:37819 个数为1
后缀:79d 字节:23795338 个数为3
后缀:79e 字节:8001129 个数为1
后缀:gif 字节:1453085 个数为597
后缀:dll_2016-04-26_000 字节:115 个数为1
后缀:70LeagueV 字节:549361 个数为1
后缀:lst 字节:47492 个数为13
后缀:26q_v1 字节:7284946 个数为1
后缀:sql 字节:87909 个数为6
后缀:11-4 字节:1230 个数为2
后缀:11-3 字节:1804 个数为2
后缀:timer 字节:10452 个数为3
后缀:html5only 字节:467448 个数为4
后缀:dll_2016-05-17_000 字节:115 个数为1
后缀:11-2 字节:1770 个数为2
后缀:11-1 字节:2032 个数为2
后缀:flexslider-min 字节:65025 个数为3
后缀:dll_2016-07-01_000 字节:13427 个数为2
后缀:greenxf 字节:97562 个数为1
特地敲了代码 要采纳啊,我这测试的是F盘 是可以的, 你有什么疑问 可追问我
package comcmmbutil;
import javaio;
/
linux 下cpu 内存 磁盘 jvm的使用监控
@author avery_leo
/
public class DiskSpace {
/
获取cpu使用情况
@return
@throws Exception
/
public double getcpuUsage() throws Exception {
double cpuUsed = 0;
Runtime rt = RuntimegetRuntime();
Process p = rtexec("top -b -n 1");// 调用系统的“top"命令
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(pgetInputStream()));
String str = null;
String[] strArray = null;
while ((str = inreadLine()) != null) {
int m = 0;
if (strindexOf(" R ") != -1) {// 只分析正在运行的进程,top进程本身除外 &&
strArray = strsplit(" ");
for (String tmp : strArray) {
if (tmptrim()length() == 0)
continue;
if (++m == 9) {// 第9列为cpu的使用百分比(RedHat
cpuUsed += DoubleparseDouble(tmp);
}
}
}
}
} catch (Exception e) {
eprintStackTrace();
} finally {
inclose();
}
return cpuUsed;
}
/
内存监控
@return
@throws Exception
/
public double getMemUsage() throws Exception {
double menUsed = 0;
Runtime rt = RuntimegetRuntime();
Process p = rtexec("top -b -n 1");// 调用系统的“top"命令
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(pgetInputStream()));
String str = null;
String[] strArray = null;
while ((str = inreadLine()) != null) {
int m = 0;
if (strindexOf(" R ") != -1) {// 只分析正在运行的进程,top进程本身除外 &&
//
// Systemoutprintln("------------------3-----------------");
strArray = strsplit(" ");
for (String tmp : strArray) {
if (tmptrim()length() == 0)
continue;
if (++m == 10) {
// 9)--第10列为mem的使用百分比(RedHat 9)
menUsed += DoubleparseDouble(tmp);
}
}
}
}
} catch (Exception e) {
eprintStackTrace();
} finally {
inclose();
}
return menUsed;
}
/
获取磁盘空间大小
@return
@throws Exception
/
public double getDeskUsage() throws Exception {
double totalhd = 0;
double usedhd = 0;
Runtime rt = RuntimegetRuntime();
Process p = rtexec("df -hl /home");//df -hl 查看硬盘空间
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(pgetInputStream()));
String str = null;
String[] strArray = null;
while ((str = inreadLine()) != null) {
int m = 0;
strArray = strsplit(" ");
for (String tmp : strArray) {
if (tmptrim()length() == 0)
continue;
++m;
Systemoutprintln("----tmp----" + tmp);
if (tmpindexOf("G") != -1) {
if (m == 2) {
Systemoutprintln("---G----" + tmp);
if (!tmpequals("") && !tmpequals("0"))
totalhd += DoubleparseDouble(tmp
substring(0, tmplength() - 1)) 1024;
}
if (m == 3) {
Systemoutprintln("---G----" + tmp);
if (!tmpequals("none") && !tmpequals("0"))
usedhd += DoubleparseDouble(tmpsubstring(
0, tmplength() - 1)) 1024;
}
}
if (tmpindexOf("M") != -1) {
if (m == 2) {
Systemoutprintln("---M---" + tmp);
if (!tmpequals("") && !tmpequals("0"))
totalhd += DoubleparseDouble(tmp
substring(0, tmplength() - 1));
}
if (m == 3) {
Systemoutprintln("---M---" + tmp);
if (!tmpequals("none") && !tmpequals("0"))
usedhd += DoubleparseDouble(tmpsubstring(
0, tmplength() - 1));
Systemoutprintln("----3----" + usedhd);
}
}
}
}
} catch (Exception e) {
eprintStackTrace();
} finally {
inclose();
}
//上面写在userd和total写反了,懒得改了,就反着用了
Systemoutprintln("----totalhd----" + usedhd);
Systemoutprintln("----usedhd----" + totalhd);
return (totalhd / usedhd) 100;
}
public static void main(String[] args) throws Exception {
DiskSpace cpu = new DiskSpace();
Systemoutprintln("---------------cpu used:" + cpugetcpuUsage() + "%");
Systemoutprintln("---------------mem used:" + cpugetMemUsage() + "%");
Systemoutprintln("---------------HD used:" + cpugetDeskUsage() + "%");
Systemoutprintln("------------jvm监控----------------------");
Runtime lRuntime = RuntimegetRuntime();
Systemoutprintln("--------------Free Momery:" + lRuntimefreeMemory()+"K");
Systemoutprintln("--------------Max Momery:" + lRuntimemaxMemory()+"K");
Systemoutprintln("--------------Total Momery:" + lRuntimetotalMemory()+"K");
Systemoutprintln("---------------Available Processors :"
+ lRuntimeavailableProcessors());
}
}
你用是智能手机
比如诺机亚的3200可以当掌上电脑用
你的也如此
他具备电脑的特性
你可一关闭一些正在运行的文件
或者删除一些内存软件
显示磁盘空间不足,这个不足并不是单纯的指存储大小不足,主要指的是RAM不足,RAM是一个硬件装置,在电脑上表现为内存条,因为你运行的JAVA软件所需要的RAM存储大于你手机本身所拥有的存储量,所以会提示你磁盘空间不足~
以上就是关于java如何获取远程计算机的系统信息,cpu使用情况,磁盘使用情况等等全部的内容,包括:java如何获取远程计算机的系统信息,cpu使用情况,磁盘使用情况等等、java程序磁盘满了,还能正常运行吗、java程序 做一个这样的程序:统计某磁盘的使用情况 统计在这磁盘中,各种文件的个数和占磁盘空间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)