java获得当前服务器的操作系统
java程序读取服务器端数据文件的方法

java程序读取服务器端数据文件的方法
1. 使用Java IO流读取服务器端文件:
使用Java IO流可以读取服务器端文件,具体步骤如下:
(1)使用URL类的openStream()方法获取URL对象的输入流;
(2)使用BufferedReader类的readLine()方法读取文件内容;
(3)使用String类的split()方法将读取的内容按照指定的分隔符分割为字符串数组;
(4)使用Arrays类的toString()方法将字符串数组转换为字符串;
(5)使用String类的replace()方法替换掉特殊字符;
(6)使用String类的split()方法将字符串按照指定的分隔符分割为字符串数组;
(7)使用for循环遍历字符串数组,将每个字符串元素添加到ArrayList中;
(8)将ArrayList转换为字符串数组,并返回。
2. 使用Java NIO读取服务器端文件:
使用Java NIO可以读取服务器端文件,具体步骤如下:
(1)使用Paths类的get()方法获取服务器端文件的路径;
(2)使用Files类的readAllBytes()方法读取文件的所有字节;
(3)使用String类的split()方法将读取的内容按照指定的分隔符分割为字符串数组;
(4)使用for循环遍历字符串数组,将每个字符串元素添加到ArrayList中;
(5)将ArrayList转换为字符串数组,并返回。
Java获取系统信息(cpu,内存,硬盘,进程等)的相关方法

java获取系统信息(CPU,内存,硬盘,进程)的相关方法一、这是一个获取相关信息的简单的方法import java.io.*;import com.sun.management.OperatingSystemMXBean;import sun.management.ManagementFactory;public class Tst{public static String pt="D:\\abc.txt";public Tst(){}public static void main(String[] args) throws Exception{//free和use和total均为KBlong free=0;long use=0;long total=0;int kb=1024;Runtime rt=Runtime.getRuntime();total=rt.totalMemory();free=rt.freeMemory();use=total-free;System.out.println("系统内存已用的空间为:"+use/kb+" MB");System.out.println("系统内存的空闲空间为:"+free/kb+" MB");System.out.println("系统总内存空间为:"+total/kb+" MB");OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();long physicalFree=osmxb.getFreePhysicalMemorySize()/kb;long physicalTotal=osmxb.getTotalPhysicalMemorySize()/kb;long physicalUse=physicalTotal-physicalFree;String os=System.getProperty("");System.out.println("操作系统的版本:"+os);System.out.println("系统物理内存已用的空间为:"+physicalFree+" MB");System.out.println("系统物理内存的空闲空间为:"+physicalUse+" MB");System.out.println("总物理内存:"+physicalTotal+" MB");// 获得线程总数ThreadGroup parentThread;for (parentThread = Thread.currentThread().getThreadGroup(); parentThread.getParent() != null; parentThread = parentThread.getParent());int totalThread = parentThread.activeCount();System.out.println("获得线程总数:"+totalThread);}}二,别的方法技巧1.利用jdk自带的API获取信息:(只支持jdk1.60以上的版本啊)import java.io.InputStreamReader;import java.io.LineNumberReader;import java.util.ArrayList;import java.util.List;import .sun.management.OperatingSystemMXBean; import mytools.java.io.File;import ng.management.ManagementFactory;/*** 获取windows系统信息(CPU,内存,文件系统)* @author libing**/public class WindowsInfoUtil {private static final int CPUTIME = 500;private static final int PERCENT = 100;private static final int FAULTLENGTH = 10;public static void main(String[] args) {System.out.println(getCpuRatioForWindows());System.out.println(getMemery());System.out.println(getDisk());}//获取内存使用率public static String getMemery(){OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();// 总的物理内存+虚拟内存long totalvirtualMemory = osmxb.getTotalSwapSpaceSize();// 剩余的物理内存long freePhysicalMemorySize = osmxb.getFreePhysicalMemorySize();Double compare=(Double)(1-freePhysicalMemorySize*1.0/totalvirtualMemory)*100; String str="内存已使用:"+compare.intValue()+"%";return str;}//获取文件系统使用率public static List<String> getDisk() {// 操作系统List<String> list=new ArrayList<String>();for (char c = 'A'; c <= 'Z'; c++) {String dirName = c + ":/";File win = new File(dirName);if(win.exists()){long total=(long)win.getTotalSpace();long free=(long)win.getFreeSpace();Double compare=(Double)(1-free*1.0/total)*100;String str=c+":盘已使用"+compare.intValue()+"%";list.add(str);}}return list;}//获得cpu使用率public static String getCpuRatioForWindows() {try {String procCmd = System.getenv("windir") + "\\system32\\wbem\\wmic.exeprocess getCaption,CommandLine,KernelModeTime,ReadOperationCount,ThreadCount,UserModeT ime,WriteOperationCount";// 取进程信息long[] c0 = readCpu(Runtime.getRuntime().exec(procCmd));Thread.sleep(CPUTIME);long[] c1 = readCpu(Runtime.getRuntime().exec(procCmd));if (c0 != null && c1 != null) {long idletime = c1[0] - c0[0];long busytime = c1[1] - c0[1];return "CPU使用率:"+Double.valueOf(PERCENT * (busytime)*1.0 / (busytime + idletime)).intValue()+"%";} else {return "CPU使用率:"+0+"%";}} catch (Exception ex) {ex.printStackTrace();return "CPU使用率:"+0+"%";}}//读取cpu相关信息private static long[] readCpu(final Process proc) {long[] retn = new long[2];try {proc.getOutputStream().close();InputStreamReader ir = new InputStreamReader(proc.getInputStream());LineNumberReader input = new LineNumberReader(ir);String line = input.readLine();if (line == null || line.length() < FAULTLENGTH) {}int capidx = line.indexOf("Caption");int cmdidx = line.indexOf("CommandLine");int rocidx = line.indexOf("ReadOperationCount");int umtidx = line.indexOf("UserModeTime");int kmtidx = line.indexOf("KernelModeTime");int wocidx = line.indexOf("WriteOperationCount");long idletime = 0;long kneltime = 0;long usertime = 0;while ((line = input.readLine()) != null) {if (line.length() < wocidx) {continue;}// 字段出现顺序:Caption,CommandLine,KernelModeTime,ReadOperationCount,// ThreadCount,UserModeTime,WriteOperationString caption =substring(line, capidx, cmdidx - 1).trim();String cmd = substring(line, cmdidx, kmtidx - 1).trim();if (cmd.indexOf("wmic.exe") >= 0) {continue;}String s1 = substring(line, kmtidx, rocidx - 1).trim();String s2 = substring(line, umtidx, wocidx - 1).trim();if (caption.equals("System Idle Process") || caption.equals("System")) { if (s1.length() > 0)idletime += Long.valueOf(s1).longValue();if (s2.length() > 0)idletime += Long.valueOf(s2).longValue();}if (s1.length() > 0)kneltime += Long.valueOf(s1).longValue();if (s2.length() > 0)usertime += Long.valueOf(s2).longValue();}retn[0] = idletime;retn[1] = kneltime + usertime;return retn;} catch (Exception ex) {ex.printStackTrace();} finally {try {proc.getInputStream().close();} catch (Exception e) {e.printStackTrace();}}return null;}/*** 由于String.subString对汉字处理存在问题(把一个汉字视为一个字节),因此在包含汉字的字符串时存在隐患,现调整如下:* @param src 要截取的字符串* @param start_idx 开始坐标(包括该坐标)* @param end_idx 截止坐标(包括该坐标)* @return*/private static String substring(String src, int start_idx, int end_idx) {byte[] b = src.getBytes();String tgt = "";for (int i = start_idx; i <= end_idx; i++) {tgt += (char) b[i];}return tgt;}}2.利用第三方的jar包:(Hyperic-hq官方网站:)通过Hyperic-hq产品的基础包sigar.jar来实现服务器状态数据的获取。
java 获取当前用户信息的方法

java 获取当前用户信息的方法Java 是一种广泛应用的编程语言,通过它我们可以轻松地获取当前用户的信息。
在本篇文章中,我将为你介绍如何使用 Java 来获取当前用户的信息,并提供一些实用的指导意义。
首先,我们需要了解什么是当前用户。
当前用户是指当前正在操作计算机的用户,或者说是当前运行 Java 程序的用户。
在 Java 中,可以通过 System 类的静态方法 getProperty() 来获取当前用户的信息。
其中,getProperty() 方法接受一个字符串参数,我们可以通过传递不同的参数来获取不同的用户信息。
1. 获取用户名:要获取当前用户的用户名,我们可以使用 "" 作为getProperty() 方法的参数。
以下是获取用户名的示例代码:```javaString userName = System.getProperty("");System.out.println("当前用户名:" + userName);```这段代码将会输出当前操作系统中的用户名。
2. 获取用户的主目录:用户的主目录是指用户登录系统后所在的目录,通常在 Linux 系统中是 "/home/用户名",而在 Windows 系统中是 "C:\Users\用户名"。
我们可以使用 "user.home" 作为 getProperty() 方法的参数来获取用户的主目录。
```javaString userHome = System.getProperty("user.home");System.out.println("当前用户主目录:" + userHome);```这段代码将会输出当前用户的主目录路径。
3. 获取用户当前工作目录:用户当前工作目录是指用户当前正在操作的目录,也就是用户在打开终端或者控制台后所在的目录。
java 获取操作系统路径的方法

java 获取操作系统路径的方法Java是一种跨平台的编程语言,可以在不同的操作系统上运行。
有时候我们需要获取操作系统的路径,比如获取用户目录或临时文件目录等。
下面介绍几种获取操作系统路径的方法。
1. 使用System.getProperty()方法获取路径System.getProperty()方法可以获取系统属性,其中一些属性可以用来获取系统路径,比如:- user.home:获取用户目录,比如在Windows上是C:Users用户名,在Linux上是/home/用户名。
- java.io.tmpdir:获取临时文件目录,比如在Windows上是C:Users用户名AppDataLocalTemp,在Linux上是/tmp。
下面是获取用户目录和临时文件目录的示例代码:// 获取用户目录String userDir = System.getProperty('user.home');System.out.println('用户目录:' + userDir);// 获取临时文件目录String tempDir = System.getProperty('java.io.tmpdir'); System.out.println('临时文件目录:' + tempDir);2. 使用File类获取路径File类可以代表文件或目录,可以通过它来获取系统路径。
比如:- File.separator:获取文件分隔符,比如在Windows上是,在Linux上是/。
- File.listRoots():获取所有根目录,比如在Windows上是C:、D:等,在Linux上是/。
下面是获取文件分隔符和所有根目录的示例代码:// 获取文件分隔符String separator = File.separator;System.out.println('文件分隔符:' + separator);// 获取所有根目录File[] roots = File.listRoots();for (File root : roots) {System.out.println('根目录:' + root.getPath());}通过以上两种方法,我们可以获取操作系统路径,方便我们进行文件或目录的操作。
怎么用命令查看操作系统

怎么用命令查看操作系统有时候需要查看自己的系统版本号,很多人都是通过安装ADA64及其他类似软件去查看到系统详细信息,但为此安装软件显然有些麻顷。
其实,我们完全可以不借助工具软件就可以查到准确的系统版本号,下面就让店铺教大家怎么用命令去查看操作系统。
用命令查看操作系统的方法一:通过运行“msinfo32.exe”查看按下“Windows+R”组合键,打开“运行”对话框,输入“msinfo32.exe”,敲回车。
在打开的“系统信息”对话框右侧窗格找到“硬件抽象层”,在这里可以查看到系统版本。
用命令查看操作系统的方法二:通过运行命令“slmgr/dlv”查看按下“Windows+R”组合键,打开“运行”对话框,输入“cmd”,敲回车。
在命令窗口输入“slmgr/dlv”,敲回车键,在打开“Windows Script Host”对话框,在这里可以查看激活系统时的“软件授权服务版本”,注意这个版本号与方法—的版本号可能有所区别,这主要是因为不同的激活方法方法,可能会导致数据变化。
用命令查看操作系统的方法三:通过注册表查看按下“Windows+R”组合键,打开“运行”对话框,输入“regedit”,敲回车键。
在打开的注册表编辑器中,依次跳转到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\C urrentVersion”,在右侧窗格查看BuildLab和BuildLabEx的值。
用命令查看操作系统的方法四:通过运行“winver”查看按下“Windows+R”组合键,打开“运行”对话框,输入“winver”,敲回车键。
弹出的窗口中可查看到系统版本号。
用命令查看操作系统的方法五:通过运行“ver”查看按下“Windows+R”组合键,打开“运行”对话框,输入“cmd”,敲回车。
在命令窗口输入“ver”,敲回车键,打印出的信息就是系统版本号。
基于Java的Windows服务器负载采集系统的设计和实现

g e t O b j e c t A s C o mO b j e c t 0 ) ;
三 、开发 和部 署环境
本 系统开发环境为J D K1 . 7 和T o mc a t 7 . 0 ,使用 的类
)  ̄NS p i f n g 3 . 0 、J - I n t e r O p ,数据库My S Q L ,前台报表展 示的部分使用T J Q u e r y 和H i g h C h a r t s 。
f o r( J I V a r i a n t v a r i a n t : a r r a y ){ I J I Di s p a t c h w b e mO b j e c t D i s p a t c h= ( I J I Di s p a t c h ) J I O b j e c t F a c t o r y .
硬盘空间、c P U 利用率、硬件类型等,在此不一一列举。 4 . 前台展示。基于后 台定期采集入库的负载数据 , 可以提供给用户基本 的表格展示 ,也可以用报表的形式
展 示 如 下
c a l l Me t h o d A ( ” C o n n e c t S e ve r r ” ,p a r a ms ) ;/ / 连接到服务器 以执行WQ L 查询
S t r i n g a s T e x t =v [ 0 ] . g e t O b j e c t As S t r i n g 0 . g e t S t r i n g ( ) ;
d i s = ( I J I D i s p a t c h ) J I O b j e c t F a c t o r y . n a r r o wO b j e c t ( s e r v e r . c r e a t e I n s t a n c e 0 . q u e r y l n t e r f a c e ( I J I D i s p a t c h . I I D ) ) ;
JAVA获得CPU和内存的使用情况的两种方法

JAVA获得CPU和内存的使用情况的两种方法在Java中,可以使用不同的方法来获取CPU和内存的使用情况。
这些信息对于优化程序性能和资源管理非常重要。
以下是两种常用的方法:1. 使用Java Management Extensions(JMX):Java提供了JMX API来监控和管理Java应用程序。
通过使用JMX,可以获取有关系统资源的详细信息,包括CPU和内存使用情况。
a)获取CPU使用情况:要获取CPU使用情况,可以使用ng.management包中的ThreadMXBean接口。
ThreadMXBean接口提供了许多有用的方法,例如getThreadCpuTime(来获取线程的CPU时间。
可以使用以下代码来获取整个系统的CPU使用情况:```javaimport ng.management.ManagementFactory;import ng.management.ThreadMXBean;public class CPUMonitorpublic static void main(String[] args)ThreadMXBean threadMXBean =ManagementFactory.getThreadMXBean(;long cpuTime = threadMXBean.getCurrentThreadCpuTime(;System.out.println("CPU Time: " + cpuTime);}}```b)获取内存使用情况:要获取内存使用情况,可以使用ng.management包中的MemoryMXBean和MemoryUsage类。
MemoryMXBean提供了获取内存使用情况的方法,而MemoryUsage类用于表示内存使用情况。
以下是一个示例代码:```javaimport ng.management.ManagementFactory;import ng.management.MemoryMXBean;import ng.management.MemoryUsage;public class MemoryMonitorpublic static void main(String[] args)MemoryMXBean memoryMXBean =ManagementFactory.getMemoryMXBean(;MemoryUsage heapMemoryUsage =memoryMXBean.getHeapMemoryUsage(;MemoryUsage nonHeapMemoryUsage =memoryMXBean.getNonHeapMemoryUsage(;System.out.println("Heap Memory Usage: " + heapMemoryUsage);System.out.println("Non-Heap Memory Usage: " + nonHeapMemoryUsage);}}```2. 使用操作系统命令和Java进程的ManagementFactory:Java还提供了一种通过执行操作系统命令并解析结果来获取CPU和内存使用情况的方法。
java systeminfo详解

java systeminfo详解Java SystemInfo是一个用于获取系统信息的Java库。
它提供了一些用于查询操作系统和硬件信息的方法,可以帮助开发人员更好地了解和管理系统。
这个库可以用于开发各种Java应用程序,比如系统监控工具、系统配置管理工具等。
Java SystemInfo提供了一系列静态方法来获取系统信息。
比如,可以使用`SystemInfo.getOperatingSystem()`方法获取操作系统的信息,包括名称、版本号、架构等。
可以使用`SystemInfo.getHardware()`方法获取硬件信息,包括处理器、内存、磁盘等。
可以使用`SystemInfo.getNetworkIFs()`方法获取网络接口的信息,包括名称、IP地址、MAC地址等。
还可以使用`SystemInfo.getFileSystem()`方法获取文件系统的信息,包括根目录、总空间、可用空间等。
Java SystemInfo还提供了一些辅助方法来处理系统信息。
比如,可以使用`SystemInfo.getUptime()`方法获取系统的运行时间,以毫秒为单位。
可以使用`SystemInfo.getJavaInfo()`方法获取当前Java运行时的信息,包括版本号、供应商等。
可以使用`SystemInfo.getJavaFXInfo()`方法获取当前JavaFX运行时的信息,比如版本号、供应商等。
除了获取系统信息,Java SystemInfo还提供了一些其他功能。
比如,可以使用`SystemInfo.getUserInfo()`方法获取当前用户的信息,包括用户名、用户主目录等。
可以使用`SystemInfo.getProcesses()`方法获取当前系统的进程列表,包括进程ID、进程名称等。
可以使用`SystemInfo.getSensors()`方法获取系统的传感器信息,比如温度、风扇速度等。
使用Java SystemInfo需要在项目中引入相关的依赖。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
import java.util.Properties;
public class Test{
public static void main (String args[]){
Properties props=System.getProperties(); //系统属性
System.out.println("Java的运行环境版本:"+props.getProperty("java.version"));
System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor"));
System.out.println("Java供应商的URL:"+props.getProperty("java.vendor.url"));
System.out.println("Java的安装路径:"+props.getProperty("java.home"));
System.out.println("Java的虚拟机规范版本:"+props.getProperty("java.vm.specification.version")); System.out.println("Java的虚拟机规范供应商:"+props.getProperty("java.vm.specification.vendor")); System.out.println("Java的虚拟机规范名称:"+props.getProperty("")); System.out.println("Java的虚拟机实现版本:"+props.getProperty("java.vm.version"));
System.out.println("Java的虚拟机实现供应商:"+props.getProperty("java.vm.vendor"));
System.out.println("Java的虚拟机实现名称:"+props.getProperty(""));
System.out.println("Java运行时环境规范版本:"+props.getProperty("java.specification.version")); System.out.println("Java运行时环境规范供应商:"+props.getProperty("java.specification.vender")); System.out.println("Java运行时环境规范名称:"+props.getProperty(""));
System.out.println("Java的类格式版本号:"+props.getProperty("java.class.version")); System.out.println("Java的类路径:"+props.getProperty("java.class.path"));
System.out.println("加载库时搜索的路径列表:"+props.getProperty("java.library.path")); System.out.println("默认的临时文件路径:"+props.getProperty("java.io.tmpdir"));
System.out.println("一个或多个扩展目录的路径:"+props.getProperty("java.ext.dirs")); System.out.println("操作系统的名称:"+props.getProperty(""));
System.out.println("操作系统的构架:"+props.getProperty("os.arch"));
System.out.println("操作系统的版本:"+props.getProperty("os.version"));
System.out.println("文件分隔符:"+props.getProperty("file.separator")); //在unix系统中是”/”System.out.println("路径分隔符:"+props.getProperty("path.separator")); //在unix系统中是”:”System.out.println("行分隔符:"+props.getProperty("line.separator")); //在unix系统中是”/n”System.out.println("用户的账户名称:"+props.getProperty(""));
System.out.println("用户的主目录:"+props.getProperty("user.home"));
System.out.println("用户的当前工作目录:"+props.getProperty("user.dir"));
}
}。