下载sigar,地址:https://yunpan.cn/cBEWbEfdAm98f (提取码:f765)

可以收集的信息

  • CPU信息:包括基本信息(vendor、model、mhz、cacheSize)和统计信息(user、sys、idle、nice、wait)
  • 文件系统信息:包括Filesystem、Size、Used、Avail、Use%、Type
  • 事件信息:类似Service Control Manager
  • 内存信息:物理内存和交换内存的总数、使用数、剩余数;RAM的大小
  • 网络信息:包括网络接口信息和网络路由信息
  • 进程信息:包括每个进程的内存、CPU占用数、状态、参数、句柄
  • IO信息:包括IO的状态,读写大小等
  • 服务状态信息
  • 系统信息:包括操作系统版本,系统资源限制情况,系统运行时间以及负载,JAVA的版本信息等

文件目录结构

hyperic-sigar-1.6.4压缩包中

  • bindings:使用例子
  • docs:文档
  • sigar-bin:开发文件(jar包,dll文件,so文件等)

1. 在自己的Java项目中引入sigar.jar

2. 同时将对应的dll文件或者so文件添加到系统目录。例如:windows下把sigar-x86-winnt.dll添加到c:\WINDOWS\system32或者jdk的bin目录

获取数据,代码如下:

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Map;
import java.util.Properties;
import org.hyperic.sigar.CpuInfo;
import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.FileSystem;
import org.hyperic.sigar.FileSystemUsage;
import org.hyperic.sigar.Mem;
import org.hyperic.sigar.NetFlags;
import org.hyperic.sigar.NetInterfaceConfig;
import org.hyperic.sigar.NetInterfaceStat;
import org.hyperic.sigar.OperatingSystem;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.Swap;
import org.hyperic.sigar.Who; public class RuntimeTest {
public static void main(String[] args) {
try {
// System信息,从jvm获取
property();
System.out.println("----------------------------------");
// cpu信息
cpu();
System.out.println("----------------------------------");
// 内存信息
memory();
System.out.println("----------------------------------");
// 操作系统信息
os();
System.out.println("----------------------------------");
// 用户信息
who();
System.out.println("----------------------------------");
// 文件系统信息
file();
System.out.println("----------------------------------");
// 网络信息
net();
System.out.println("----------------------------------");
// 以太网信息
ethernet();
System.out.println("----------------------------------");
} catch (Exception e1) {
e1.printStackTrace();
}
} private static void property() throws UnknownHostException {
Runtime r = Runtime.getRuntime();
Properties props = System.getProperties();
InetAddress addr;
addr = InetAddress.getLocalHost();
String ip = addr.getHostAddress();
Map<String, String> map = System.getenv();
String userName = map.get("USERNAME");// 获取用户名
String computerName = map.get("COMPUTERNAME");// 获取计算机名
String userDomain = map.get("USERDOMAIN");// 获取计算机域名
System.out.println("用户名: " + userName);
System.out.println("计算机名: " + computerName);
System.out.println("计算机域名: " + userDomain);
System.out.println("本地ip地址: " + ip);
System.out.println("本地主机名: " + addr.getHostName());
System.out.println("JVM可以使用的总内存: " + r.totalMemory());
System.out.println("JVM可以使用的剩余内存: " + r.freeMemory());
System.out.println("JVM可以使用的处理器个数: " + r.availableProcessors());
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("java.vm.specification.name"));
System.out.println("Java的虚拟机实现版本: " + props.getProperty("java.vm.version"));
System.out.println("Java的虚拟机实现供应商: " + props.getProperty("java.vm.vendor"));
System.out.println("Java的虚拟机实现名称: " + props.getProperty("java.vm.name"));
System.out.println("Java运行时环境规范版本: " + props.getProperty("java.specification.version"));
System.out.println("Java运行时环境规范供应商: " + props.getProperty("java.specification.vender"));
System.out.println("Java运行时环境规范名称: " + props.getProperty("java.specification.name"));
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("os.name"));
System.out.println("操作系统的构架: " + props.getProperty("os.arch"));
System.out.println("操作系统的版本: " + props.getProperty("os.version"));
System.out.println("文件分隔符: " + props.getProperty("file.separator"));
System.out.println("路径分隔符: " + props.getProperty("path.separator"));
System.out.println("行分隔符: " + props.getProperty("line.separator"));
System.out.println("用户的账户名称: " + props.getProperty("user.name"));
System.out.println("用户的主目录: " + props.getProperty("user.home"));
System.out.println("用户的当前工作目录: " + props.getProperty("user.dir"));
} private static void memory() throws SigarException {
Sigar sigar = new Sigar();
Mem mem = sigar.getMem();
// 内存总量
System.out.println("内存总量: " + mem.getTotal() / 1024L + "K av");
// 当前内存使用量
System.out.println("当前内存使用量: " + mem.getUsed() / 1024L + "K used");
// 当前内存剩余量
System.out.println("当前内存剩余量: " + mem.getFree() / 1024L + "K free");
Swap swap = sigar.getSwap();
// 交换区总量
System.out.println("交换区总量: " + swap.getTotal() / 1024L + "K av");
// 当前交换区使用量
System.out.println("当前交换区使用量: " + swap.getUsed() / 1024L + "K used");
// 当前交换区剩余量
System.out.println("当前交换区剩余量: " + swap.getFree() / 1024L + "K free");
} private static void cpu() throws SigarException {
Sigar sigar = new Sigar();
CpuInfo infos[] = sigar.getCpuInfoList();
CpuPerc cpuList[] = null;
cpuList = sigar.getCpuPercList();
for (int i = 0; i < infos.length; i++) {// 不管是单块CPU还是多CPU都适用
CpuInfo info = infos[i];
System.out.println("第" + (i + 1) + "块CPU信息");
System.out.println("CPU的总量MHz: " + info.getMhz());// CPU的总量MHz
System.out.println("CPU生产商: " + info.getVendor());// 获得CPU的卖主,如:Intel
System.out.println("CPU类别: " + info.getModel());// 获得CPU的类别,如:Celeron
System.out.println("CPU缓存数量: " + info.getCacheSize());// 缓冲存储器数量
printCpuPerc(cpuList[i]);
}
} private static void printCpuPerc(CpuPerc cpu) {
System.out.println("CPU用户使用率: " + CpuPerc.format(cpu.getUser()));// 用户使用率
System.out.println("CPU系统使用率: " + CpuPerc.format(cpu.getSys()));// 系统使用率
System.out.println("CPU当前等待率: " + CpuPerc.format(cpu.getWait()));// 当前等待率
System.out.println("CPU当前错误率: " + CpuPerc.format(cpu.getNice()));//
System.out.println("CPU当前空闲率: " + CpuPerc.format(cpu.getIdle()));// 当前空闲率
System.out.println("CPU总的使用率: " + CpuPerc.format(cpu.getCombined()));// 总的使用率
} private static void os() {
OperatingSystem OS = OperatingSystem.getInstance();
// 操作系统内核类型如: 386、486、586等x86
System.out.println("操作系统: " + OS.getArch());
System.out.println("操作系统CpuEndian(): " + OS.getCpuEndian());//
System.out.println("操作系统DataModel(): " + OS.getDataModel());//
// 系统描述
System.out.println("操作系统的描述: " + OS.getDescription());
// 操作系统类型
// System.out.println("OS.getName(): " + OS.getName());
// System.out.println("OS.getPatchLevel(): " + OS.getPatchLevel());//
// 操作系统的卖主
System.out.println("操作系统的卖主: " + OS.getVendor());
// 卖主名称
System.out.println("操作系统的卖主名: " + OS.getVendorCodeName());
// 操作系统名称
System.out.println("操作系统名称: " + OS.getVendorName());
// 操作系统卖主类型
System.out.println("操作系统卖主类型: " + OS.getVendorVersion());
// 操作系统的版本号
System.out.println("操作系统的版本号: " + OS.getVersion());
} private static void who() throws SigarException {
Sigar sigar = new Sigar();
Who who[] = sigar.getWhoList();
if (who != null && who.length > 0) {
for (int i = 0; i < who.length; i++) {
// System.out.println("当前系统进程表中的用户名" + String.valueOf(i));
Who _who = who[i];
System.out.println("用户控制台: " + _who.getDevice());
System.out.println("用户host: " + _who.getHost());
// System.out.println("getTime(): " + _who.getTime());
// 当前系统进程表中的用户名
System.out.println("当前系统进程表中的用户名: " + _who.getUser());
}
}
} private static void file() throws Exception {
Sigar sigar = new Sigar();
FileSystem fslist[] = sigar.getFileSystemList();
for (int i = 0; i < fslist.length; i++) {
System.out.println("分区的盘符名称" + i);
FileSystem fs = fslist[i];
// 分区的盘符名称
System.out.println("盘符名称: " + fs.getDevName());
// 分区的盘符名称
System.out.println("盘符路径: " + fs.getDirName());
System.out.println("盘符标志: " + fs.getFlags());//
// 文件系统类型,比如 FAT32、NTFS
System.out.println("盘符类型: " + fs.getSysTypeName());
// 文件系统类型名,比如本地硬盘、光驱、网络文件系统等
System.out.println("盘符类型名: " + fs.getTypeName());
// 文件系统类型
System.out.println("盘符文件系统类型: " + fs.getType());
FileSystemUsage usage = null;
usage = sigar.getFileSystemUsage(fs.getDirName());
switch (fs.getType()) {
case 0: // TYPE_UNKNOWN :未知
break;
case 1: // TYPE_NONE
break;
case 2: // TYPE_LOCAL_DISK : 本地硬盘
// 文件系统总大小
System.out.println(fs.getDevName() + "总大小: " + usage.getTotal() + "KB");
// 文件系统剩余大小
System.out.println(fs.getDevName() + "剩余大小: " + usage.getFree() + "KB");
// 文件系统可用大小
System.out.println(fs.getDevName() + "可用大小: " + usage.getAvail() + "KB");
// 文件系统已经使用量
System.out.println(fs.getDevName() + "已经使用量: " + usage.getUsed() + "KB");
double usePercent = usage.getUsePercent() * 100D;
// 文件系统资源的利用率
System.out.println(fs.getDevName() + "资源的利用率: " + usePercent + "%");
break;
case 3:// TYPE_NETWORK :网络
break;
case 4:// TYPE_RAM_DISK :闪存
break;
case 5:// TYPE_CDROM :光驱
break;
case 6:// TYPE_SWAP :页面交换
break;
}
System.out.println(fs.getDevName() + "读出: " + usage.getDiskReads());
System.out.println(fs.getDevName() + "写入: " + usage.getDiskWrites());
}
return;
} private static void net() throws Exception {
Sigar sigar = new Sigar();
String ifNames[] = sigar.getNetInterfaceList();
for (int i = 0; i < ifNames.length; i++) {
String name = ifNames[i];
NetInterfaceConfig ifconfig = sigar.getNetInterfaceConfig(name);
System.out.println("网络设备名: " + name);// 网络设备名
System.out.println("IP地址: " + ifconfig.getAddress());// IP地址
System.out.println("子网掩码: " + ifconfig.getNetmask());// 子网掩码
if ((ifconfig.getFlags() & 1L) <= 0L) {
System.out.println("!IFF_UP...skipping getNetInterfaceStat");
continue;
}
NetInterfaceStat ifstat = sigar.getNetInterfaceStat(name);
System.out.println(name + "接收的总包裹数:" + ifstat.getRxPackets());// 接收的总包裹数
System.out.println(name + "发送的总包裹数:" + ifstat.getTxPackets());// 发送的总包裹数
System.out.println(name + "接收到的总字节数:" + ifstat.getRxBytes());// 接收到的总字节数
System.out.println(name + "发送的总字节数:" + ifstat.getTxBytes());// 发送的总字节数
System.out.println(name + "接收到的错误包数:" + ifstat.getRxErrors());// 接收到的错误包数
System.out.println(name + "发送数据包时的错误数:" + ifstat.getTxErrors());// 发送数据包时的错误数
System.out.println(name + "接收时丢弃的包数:" + ifstat.getRxDropped());// 接收时丢弃的包数
System.out.println(name + "发送时丢弃的包数:" + ifstat.getTxDropped());// 发送时丢弃的包数
}
} private static void ethernet() throws SigarException {
Sigar sigar = null;
sigar = new Sigar();
String[] ifaces = sigar.getNetInterfaceList();
for (int i = 0; i < ifaces.length; i++) {
NetInterfaceConfig cfg = sigar.getNetInterfaceConfig(ifaces[i]);
if (NetFlags.LOOPBACK_ADDRESS.equals(cfg.getAddress()) || (cfg.getFlags() & NetFlags.IFF_LOOPBACK) != 0
|| NetFlags.NULL_HWADDR.equals(cfg.getHwaddr())) {
continue;
}
System.out.println(cfg.getName() + "IP地址:" + cfg.getAddress());// IP地址
System.out.println(cfg.getName() + "网关广播地址:" + cfg.getBroadcast());// 网关广播地址
System.out.println(cfg.getName() + "网卡MAC地址:" + cfg.getHwaddr());// 网卡MAC地址
System.out.println(cfg.getName() + "子网掩码:" + cfg.getNetmask());// 子网掩码
System.out.println(cfg.getName() + "网卡描述信息:" + cfg.getDescription());// 网卡描述信息
System.out.println(cfg.getName() + "网卡类型" + cfg.getType());//
}
}
}

运行结果:

用户名: Administrator
计算机名: UCIT_JIF
计算机域名: UCIT_JIF
本地ip地址: 192.168.2.153
本地主机名: UCIT_Jif
JVM可以使用的总内存: 16252928
JVM可以使用的剩余内存: 15866248
JVM可以使用的处理器个数: 2
Java的运行环境版本: 1.6.0_18
Java的运行环境供应商: Sun Microsystems Inc.
Java供应商的URL: http://java.sun.com/
Java的安装路径: C:\java\jre6
Java的虚拟机规范版本: 1.0
Java的虚拟机规范供应商: Sun Microsystems Inc.
Java的虚拟机规范名称: Java Virtual Machine Specification
Java的虚拟机实现版本: 16.0-b13
Java的虚拟机实现供应商: Sun Microsystems Inc.
Java的虚拟机实现名称: Java HotSpot(TM) Client VM
Java运行时环境规范版本: 1.6
Java运行时环境规范供应商: null
Java运行时环境规范名称: Java Platform API Specification
Java的类格式版本号: 50.0
Java的类路径: D:\eclipse3.6\eclipse\workspace\sigar\bin;D:\eclipse3.6\eclipse\workspace\sigar\lib\sigar.jar;D:\eclipse3.6\eclipse\workspace\sigar\lib\.sigar_shellrc;D:\eclipse3.6\eclipse\workspace\sigar\lib\sigar-x86-winnt.dll;D:\eclipse3.6\eclipse\workspace\sigar\lib\sigar-x86-winnt.lib;D:\eclipse3.6\eclipse\workspace\sigar\lib\libsigar-x86-linux.so
加载库时搜索的路径列表: C:\java\jre6\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\PHP\;D:\oracle\product\10.2.0\client_2\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs;C:\java\jdk1.6.0_18\bin;C:\Program Files\TortoiseSVN\bin;C:\Progra~1\GnuWin32\bin;C:\Program Files\goodvpn\bin;D:\Program Files\PowerCmd;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Common Files\Adobe\AGL;C:\apache-ant-1.8.2\bin;D:\Program Files\Rational\common;C:\Program Files\StormII\Codec;C:\Program Files\StormII;C:\Program Files\SSH Communications Security\SSH Secure Shell;;;C:\Program Files\OpenVPN\bin;C:\Program Files\OpenVPN64\bin
默认的临时文件路径: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\
一个或多个扩展目录的路径: C:\java\jre6\lib\ext;C:\WINDOWS\Sun\Java\lib\ext
操作系统的名称: Windows XP
操作系统的构架: x86
操作系统的版本: 5.1
文件分隔符: \
路径分隔符: ;
行分隔符: 用户的账户名称: Administrator
用户的主目录: C:\Documents and Settings\Administrator
用户的当前工作目录: D:\eclipse3.6\eclipse\workspace\sigar
----------------------------------
第1块CPU信息
CPU的总量MHz: 3015
CPU生产商: AMD
CPU类别: Athlon
CPU缓存数量: -1
CPU用户使用率: 3.1%
CPU系统使用率: 9.3%
CPU当前等待率: 0.0%
CPU当前错误率: 0.0%
CPU当前空闲率: 87.4%
CPU总的使用率: 12.5%
第2块CPU信息
CPU的总量MHz: 3015
CPU生产商: AMD
CPU类别: Athlon
CPU缓存数量: -1
CPU用户使用率: 0.0%
CPU系统使用率: 3.2%
CPU当前等待率: 0.0%
CPU当前错误率: 0.0%
CPU当前空闲率: 96.8%
CPU总的使用率: 3.2%
----------------------------------
内存总量: 3275880K av
当前内存使用量: 1698960K used
当前内存剩余量: 1576920K free
交换区总量: 5206208K av
当前交换区使用量: 2062372K used
当前交换区剩余量: 3143836K free
----------------------------------
操作系统: x86
操作系统CpuEndian(): little
操作系统DataModel(): 32
操作系统的描述: Microsoft Windows XP
操作系统的卖主: Microsoft
操作系统的卖主名: Whistler
操作系统名称: Windows XP
操作系统卖主类型: XP
操作系统的版本号: 5.1
----------------------------------
用户控制台: console
用户host: NT AUTHORITY
当前系统进程表中的用户名: LOCAL SERVICE
用户控制台: console
用户host: NT AUTHORITY
当前系统进程表中的用户名: NETWORK SERVICE
用户控制台: Console
用户host: UCIT_JIF
当前系统进程表中的用户名: Administrator
用户控制台: console
用户host: NT AUTHORITY
当前系统进程表中的用户名: SYSTEM
----------------------------------
分区的盘符名称0
盘符名称: C:\
盘符路径: C:\
盘符标志: 0
盘符类型: FAT32
盘符类型名: local
盘符文件系统类型: 2
C:\总大小: 47159808KB
C:\剩余大小: 9771792KB
C:\可用大小: 9771792KB
C:\已经使用量: 37388016KB
C:\资源的利用率: 80.0%
C:\读出: 45669
C:\写入: 43176
分区的盘符名称1
盘符名称: D:\
盘符路径: D:\
盘符标志: 0
盘符类型: NTFS
盘符类型名: local
盘符文件系统类型: 2
D:\总大小: 133186848KB
D:\剩余大小: 65896436KB
D:\可用大小: 65896436KB
D:\已经使用量: 67290412KB
D:\资源的利用率: 51.0%
D:\读出: 41299
D:\写入: 40369
分区的盘符名称2
盘符名称: E:\
盘符路径: E:\
盘符标志: 0
盘符类型: NTFS
盘符类型名: local
盘符文件系统类型: 2
E:\总大小: 154151672KB
E:\剩余大小: 82892352KB
E:\可用大小: 82892352KB
E:\已经使用量: 71259320KB
E:\资源的利用率: 47.0%
E:\读出: 21383
E:\写入: 728
分区的盘符名称3
盘符名称: F:\
盘符路径: F:\
盘符标志: 0
盘符类型: NTFS
盘符类型名: local
盘符文件系统类型: 2
F:\总大小: 153862504KB
F:\剩余大小: 33843680KB
F:\可用大小: 33843680KB
F:\已经使用量: 120018824KB
F:\资源的利用率: 79.0%
F:\读出: 14
F:\写入: 24
----------------------------------
网络设备名: eth0
IP地址: 0.0.0.0
子网掩码: 0.0.0.0
!IFF_UP...skipping getNetInterfaceStat
网络设备名: eth1
IP地址: 0.0.0.0
子网掩码: 0.0.0.0
!IFF_UP...skipping getNetInterfaceStat
网络设备名: eth2
IP地址: 192.168.2.153
子网掩码: 255.255.255.0
eth2接收的总包裹数:105678
eth2发送的总包裹数:21919
eth2接收到的总字节数:24269582
eth2发送的总字节数:8721544
eth2接收到的错误包数:0
eth2发送数据包时的错误数:0
eth2接收时丢弃的包数:0
eth2发送时丢弃的包数:0
网络设备名: eth3
IP地址: 192.168.184.1
子网掩码: 255.255.255.0
eth3接收的总包裹数:144
eth3发送的总包裹数:146
eth3接收到的总字节数:16861
eth3发送的总字节数:16969
eth3接收到的错误包数:0
eth3发送数据包时的错误数:0
eth3接收时丢弃的包数:0
eth3发送时丢弃的包数:0
网络设备名: eth4
IP地址: 192.168.92.1
子网掩码: 255.255.255.0
eth4接收的总包裹数:144
eth4发送的总包裹数:146
eth4接收到的总字节数:16861
eth4发送的总字节数:16969
eth4接收到的错误包数:0
eth4发送数据包时的错误数:0
eth4接收时丢弃的包数:0
eth4发送时丢弃的包数:0
网络设备名: lo0
IP地址: 127.0.0.1
子网掩码: 255.0.0.0
lo0接收的总包裹数:94004
lo0发送的总包裹数:94004
lo0接收到的总字节数:15416919
lo0发送的总字节数:15416919
lo0接收到的错误包数:0
lo0发送数据包时的错误数:0
lo0接收时丢弃的包数:0
lo0发送时丢弃的包数:0
----------------------------------
eth0IP地址:0.0.0.0
eth0网关广播地址:255.255.255.255
eth0网卡MAC地址:00:FF:79:6B:AF:45
eth0子网掩码:0.0.0.0
eth0网卡描述信息:TAP-Win32 Adapter V8 #3 - ????ü??????ò?
eth0网卡类型Ethernet
eth1IP地址:0.0.0.0
eth1网关广播地址:255.255.255.255
eth1网卡MAC地址:00:FF:C9:53:0A:58
eth1子网掩码:0.0.0.0
eth1网卡描述信息:TAP-Win32 Adapter V8 #2 - ????ü??????ò?
eth1网卡类型Ethernet
eth2IP地址:192.168.2.153
eth2网关广播地址:192.168.2.255
eth2网卡MAC地址:00:21:86:4D:23:26
eth2子网掩码:255.255.255.0
eth2网卡描述信息:NVIDIA nForce Networking Controller - ????ü??????ò?
eth2网卡类型Ethernet
eth3IP地址:192.168.184.1
eth3网关广播地址:192.168.184.255
eth3网卡MAC地址:00:50:56:C0:00:01
eth3子网掩码:255.255.255.0
eth3网卡描述信息:VMware Virtual Ethernet Adapter for VMnet1
eth3网卡类型Ethernet
eth4IP地址:192.168.92.1
eth4网关广播地址:192.168.92.255
eth4网卡MAC地址:00:50:56:C0:00:08
eth4子网掩码:255.255.255.0
eth4网卡描述信息:VMware Virtual Ethernet Adapter for VMnet8
eth4网卡类型Ethernet

sigar开发(java)的更多相关文章

  1. 崔用志-微信开发-java版本

    崔用志-微信开发-java版本 今天看到一些关于微信开发的知识蛮好的博客,分享给大家,希望对大家有帮助. 微信开发准备(一)--Maven仓库管理新建WEB项目 微信开发准备(二)--springmv ...

  2. 用Editplus开发Java

    ☆ 准备工作 ①,已安装好jdk,同时配置系统变量(3个,JAVA_HOME,PATH,CLASSPATH) ②,电脑已安装Editplus,并做好设置. ☆ Editplus配置java开发环境 对 ...

  3. IntelliJ IDEA: maven & jetty 开发 java web

    之前使用eclipse + maven + jetty开发java web应用,本着no zuo no gain的想法, 折腾了一下Intellj idea下开发环境的搭建,顺带学习了maven re ...

  4. 使用Eclipse/MyEclipse开发Java程序

    集成开发环境(IDE)是一类软件 将程序开发环境和程序调试环境集合在一起,提高开发效率 下载eclipse安装包网址:http://www.eclipse.org/downloads/ **MyEcl ...

  5. 支付宝当面付开发(java)

    支付宝当面付开发(java) 业务流程:       接入准备:   直接下载demo: https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7 ...

  6. 安卓开发JAVA基础之初识JAVA

    JAVA的一大特点------不依赖平台 JAVA在平台之上提供了一个JAVA运行环境(Java  Runtime Environment, JRE),该环境由Java虚拟机(Java  Virtua ...

  7. AndroidStudio开发Java工程(解决java控制台中文打印乱码+导入jar包运行工程)

    这篇分享一点个人AS开发java工程经验,虽然有时候还是得打开eclipse来运行java项目,但能用AS的时候还是尽量用AS,毕竟一个字,爽~ 废话不多说,进入正题. 一.开发Java工程 你有两种 ...

  8. 使用IntelliJ IDEA开发java web

    前言:由于本人接触java语言时间还比较短,IDE工具eclipse还比较熟悉点,想试试用IntelliJ IDEA来开发java web项目来练练手! 一.下载安装篇 1.安装IntelliJ ID ...

  9. eclipse开发Java web工程时,jsp第一行报错,如何解决?

    与myeclipse不同,eclipse开发java web项目时是要下载第三方软件(服务器)的,正是这个原因,很多初学者用eclipse学习java web的时候,总是会遇到一些小问题.其中常见的一 ...

  10. Swing用于开发Java应用程序用户界面

    Swing是一个用于开发Java应用程序用户界面的开发工具包. 以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格. Swing开发人员只用很少的代码就可以利用Swing丰富 ...

随机推荐

  1. webAPi OData的使用

    一.OData介绍 开放数据协议(Open Data Protocol,缩写OData)是一种描述如何创建和访问Restful服务的OASIS标准. 二.OData 在asp.net mvc中的用法 ...

  2. 谷歌浏览器javascript错误提示插件

    JavaScript-Errors-Notifier_v2.1.7 下载地址 安装方法: http://chromecj.com/utilities/2014-09/181.html 设置方式:

  3. Vlc支持IE 360 低版本的Google浏览器

    VLC 插件代码: <object type='application/x-vlc-plugin' pluginspage="http://www.videolan.org/" ...

  4. Error: spawn Unknown system errno 203

    在用node写代码的时候发现这个错误,google之无解,现在解决,发于此. 事件起因为一个全局模块通过子进程(chind_process)调用另一个全局模块的命令,这个错误就是在命令行通过全局命令调 ...

  5. Dos烧录脚本

    Dos命令之前更改的太简单,现在加入判断是否进入fasboot模式和判断Android镜像是否存在:代码已经尽量简化成这样,dos命令功能还是比较不好用的,用了一下午的时间... @echo off ...

  6. windows系统安装python3.6.3和python3.7.0

    一.装备好从官网下载的python软件包(3.6.3和3.7.0) 二.先安装python3.6.3 1.运行python3.6.3文件 2.选择默认 3.下一步,等待安装 4.检查是否安装成功 ,安 ...

  7. Sudoku 个人项目1

    Github项目地址:Github 项目相关要求 随机构造出N个不重复的已解答的数独棋盘(0 < N <= 1000000) 在生成数独矩阵时,左上角的第一个数为:(学号后两位相加)% 9 ...

  8. node及socket.io实现简易websocket双向通信

    技术栈: vue2.0 + node + websocket( socket.io ) 1. 安装依赖 初始化vue项目后输入下方指令安装依赖包 // 推荐cnpm安装 npm i vue-socke ...

  9. [零基础学python]为什么要开设本栏目

    这个栏目的名称叫做"零基础学Python". 如今网上已经有不少学习python的课程.当中也不乏精品.按理说,不缺少我这个基础类型的课程了.可是,我注意到一个问题.无论是课程还是 ...

  10. centos7下安装docker(11容器操作总结)

    这段时间主要是学习了对容器的操作,包括:容器的状态:start,stop,restart,rename,pause,unpause,rm,attach,exec,kill,logs:还学习了对容器的资 ...