精华内容
下载资源
问答
  • 售价:600RMB。 这个系统是从上一个文章【java web图书借阅系统】改造而来的。框架是SpringBoot+layui来做的。代码的注释也写的很清楚,很适合java的初学者学习。...学生查看电脑配置界面 查看配置信息...

    售价:600RMB。

    这个系统是从上一个文章【java web图书借阅系统】改造而来的。框架是SpringBoot+layui来做的。代码的注释也写的很清楚,很适合java的初学者学习。这个代码是收费的!这里可以带开发学生毕业系统,请联系renkai721@163.com。

     

    话不多说,直接上图片。

    登录界面

     

    模拟装机模块

     

    添加配置清单

     

    添加配置类别页面

     

    用户列表页面

    用户装机列表界面

     

    学生查看电脑配置界面

     

    查看配置信息列表

     

    购买列表的页面

     

     

    注册界面

     

    配置文件注释很清楚

     

    代码注释

    操作手册

     

    使用到的技术

    JDK环境:java jdk1.8

    数据库:mysql 8

    代码的注释率在85%,很适合java的新手学习研究,需要源码的可以联系邮箱renkai721@163.com,请大家注意,是收费的哦!

     

    展开全文
  • Java.Utils:获取电脑配置信息

    万次阅读 2020-02-13 18:33:15
    package com.boob.common.utils... import java.io.*; /** * @description:电脑配置信息 * @author:boob * @since:2020/2/7 */ public class HardwareUtils { public HardwareUtils() { } /** * 获取...
    package org.bood.common.utils;
    
    import java.io.*;
    
    /**
     * <p>
     * 获取电脑配置信息
     * </p>
     *
     * @author:bood
     * @date:2020/10/16
     */
    public class HardwareUtils {
    
        public HardwareUtils() {
        }
    
        /**
         * <p>
         * 获取主板序列号
         * </p>
         *
         * @return:java.lang.String
         * @author:bood
         * @date:2020/10/16
         */
        public static String getMotherboardSN() {
            String result = "";
            try {
                File file = File.createTempFile("realhowto", ".vbs");
                file.deleteOnExit();
                FileWriter fw = new FileWriter(file);
    
                String vbs = "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
                        + "Set colItems = objWMIService.ExecQuery _ \n"
                        + "   (\"Select * from Win32_BaseBoard\") \n"
                        + "For Each objItem in colItems \n"
                        + "    Wscript.Echo objItem.SerialNumber \n"
                        + "    exit for  ' do the first cpu only! \n" + "Next \n";
    
                fw.write(vbs);
                fw.close();
                Process p = Runtime.getRuntime().exec(
                        "cscript //NoLogo " + file.getPath());
                BufferedReader input = new BufferedReader(new InputStreamReader(
                        p.getInputStream()));
                String line;
                while ((line = input.readLine()) != null) {
                    result += line;
                }
                input.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result.trim();
        }
    
        /**
         * <p>
         * 获取硬盘序列号
         * </p>
         *
         * @param drive: 盘符
         * @return:java.lang.String
         * @author:bood
         * @date:2020/10/16
         */
        public static String getHardDiskSN(String drive) {
            String result = "";
            try {
                File file = File.createTempFile("realhowto", ".vbs");
                file.deleteOnExit();
                FileWriter fw = new FileWriter(file);
    
                String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n"
                        + "Set colDrives = objFSO.Drives\n"
                        + "Set objDrive = colDrives.item(\""
                        + drive
                        + "\")\n"
                        + "Wscript.Echo objDrive.SerialNumber"; // see note
                fw.write(vbs);
                fw.close();
                Process p = Runtime.getRuntime().exec(
                        "cscript //NoLogo " + file.getPath());
                BufferedReader input = new BufferedReader(new InputStreamReader(
                        p.getInputStream()));
                String line;
                while ((line = input.readLine()) != null) {
                    result += line;
                }
                input.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result.trim();
        }
    
        /**
         * <p>
         * 获取 CPU 序列号
         * </p>
         *
         * @return:java.lang.String
         * @author:bood
         * @date:2020/10/16
         */
        public static String getCPUSerial() {
            String result = "";
            try {
                File file = File.createTempFile("tmp", ".vbs");
                file.deleteOnExit();
                FileWriter fw = new FileWriter(file);
                String vbs = "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
                        + "Set colItems = objWMIService.ExecQuery _ \n"
                        + "   (\"Select * from Win32_Processor\") \n"
                        + "For Each objItem in colItems \n"
                        + "    Wscript.Echo objItem.ProcessorId \n"
                        + "    exit for  ' do the first cpu only! \n" + "Next \n";
    
                // + "    exit for  \r\n" + "Next";
                fw.write(vbs);
                fw.close();
                Process p = Runtime.getRuntime().exec(
                        "cscript //NoLogo " + file.getPath());
                BufferedReader input = new BufferedReader(new InputStreamReader(
                        p.getInputStream()));
                String line;
                while ((line = input.readLine()) != null) {
                    result += line;
                }
                input.close();
                file.delete();
            } catch (Exception e) {
                e.fillInStackTrace();
            }
            if (result.trim().length() < 1 || result == null) {
                result = "无CPU_ID被读取";
            }
            return result.trim();
        }
    
        /**
         * <p>
         * 获取MAC地址,使用前请修改,只适合中文系统,并且名称为以太网适配器的网卡地址
         * </p>
         *
         * @return:java.lang.String
         * @author:bood
         * @date:2020/10/16
         */
        @Deprecated
        public static String getMac() {
            String result = "";
            try {
    
                Process process = Runtime.getRuntime().exec("ipconfig /all");
                InputStreamReader ir = new InputStreamReader(process.getInputStream(), "GBK");
                LineNumberReader input = new LineNumberReader(ir);
    
                String line;
    
                while ((line = input.readLine()) != null) {
                    if (line.indexOf("以太网适配器") != -1) {
                        while ((line = input.readLine()) != null) {
                            if (line.indexOf("Physical Address") >= 0 || line.indexOf("物理地址") >= 0) {
                                String MACAddr = line.substring(line.indexOf("-") - 2);
                                result = MACAddr;
                                break;
                            }
                        }
                        break;
                    }
                }
            } catch (IOException e) {
                System.err.println("IOException " + e.getMessage());
            }
            return result;
        }
    
    }
    

    在这里插入图片描述

    展开全文
  • sigar-amd64-winnt.dll拷贝到java jdk的安装路径下的bin目录 我这里是 C:\Program Files\Java\jdk1.8.0_121\bin Centos libsigar-amd64-linux.so 拷贝到/usr/lib64/下面 授权 sudo chmod 744 /...

    背景

    本来这个网上一大堆实在没什么想写的,但是好像大多数都是互相抄袭的,在centos根本上用不了,因此我整理下自己具体实现的步骤。

    使用环境

    sigar版本:hyperic-sigar-1.6.4
    依赖的链接库: libsigar-amd64-linux.so,sigar-amd64-winnt.dll

    操作系统:
    window10 64位,cetos7 64位

    window

    sigar-amd64-winnt.dll拷贝到java jdk的安装路径下的bin目录
    我这里是
    C:\Program Files\Java\jdk1.8.0_121\bin

    Centos

    libsigar-amd64-linux.so 拷贝到/usr/lib64/下面
    授权

    sudo chmod 744 /usr/lib64/libsigar-amd64-linux.so
    chmod a+x /usr/lib64/libsigar-amd64-linux.so
    

    程序源码

    maven依赖

        <dependency>
            <groupId>org.fusesource</groupId>
            <artifactId>sigar</artifactId>
            <version>1.6.4</version>
        </dependency>

    java源码

    package apply;
    
    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();
            // 操作系统内核类型如: 386486586等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());//
            }
        }
    }

    centos7下的运行效果

    这里写图片描述

    工具下载地址

    工具链接,某度的云盘:
    链接:http://pan.baidu.com/s/1ckp8RG 密码:u1sq
    包括jar包,jar-source包,zip包。

    展开全文
  • java获取电脑硬件信息代码

    热门讨论 2010-07-23 11:33:13
    本程序通过java准确获取电脑硬件信息,中间用到第三方包,也一并放在本压缩文件中,里面有两个DLL动态链接库问价,要把这两个文件放在系统盘的SYSTEM32文件夹下面,合理配置第三方包就可以运行这个程序来获得电脑...
  • Java获取电脑硬件信息

    2018-10-29 14:38:00
    1 package com.szht.gpy.util; 2 3 import java.applet.Applet; 4 import java.awt.Graphics; 5 import java.io.BufferedReader; 6 import java.io.File; 7 import java.io.FileWriter; 8...
      1 package com.szht.gpy.util;
      2 
      3 import java.applet.Applet;
      4 import java.awt.Graphics;
      5 import java.io.BufferedReader;
      6 import java.io.File;
      7 import java.io.FileWriter;
      8 import java.io.InputStreamReader;
      9 import java.net.InetAddress;
     10 import java.net.NetworkInterface;
     11 
     12 
     13 public class HardWareUtils extends Applet {
     14     public HardWareUtils(){
     15     }
     16     private static final long serialVersionUID = 1L;
     17  
     18     @Override
     19     public void paint(Graphics paint) {
     20         super.paint(paint);
     21         paint.drawString("获取硬件信息", 10, 10);
     22         paint.drawString("CPU  SN:" + HardWareUtils.getCPUSerial(), 10, 30);
     23         paint.drawString("主板  SN:" + HardWareUtils.getMotherboardSN(), 10, 50);
     24         paint.drawString("C盘   SN:" + HardWareUtils.getHardDiskSN("c"), 10, 70);
     25         paint.drawString("MAC  SN:" + HardWareUtils.getMac(), 10, 90);
     26     }
     27  
     28     /**
     29      * 获取主板序列号
     30      * 
     31      * @return
     32      */
     33     public static String getMotherboardSN() {
     34         String result = "";
     35         try {
     36             File file = File.createTempFile("realhowto", ".vbs");
     37             file.deleteOnExit();
     38             FileWriter fw = new java.io.FileWriter(file);
     39             String vbs = "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
     40                     + "Set colItems = objWMIService.ExecQuery _ \n"
     41                     + "   (\"Select * from Win32_BaseBoard\") \n"
     42                     + "For Each objItem in colItems \n"
     43                     + "    Wscript.Echo objItem.SerialNumber \n"
     44                     + "    exit for  ' do the first cpu only! \n" + "Next \n";
     45  
     46             fw.write(vbs);
     47             fw.close();
     48             Process p = Runtime.getRuntime().exec(
     49                     "cscript //NoLogo " + file.getPath());
     50             BufferedReader input = new BufferedReader(new InputStreamReader(p
     51                     .getInputStream()));
     52             String line;
     53             while ((line = input.readLine()) != null) {
     54                 result += line;
     55             }
     56             input.close();
     57         } catch (Exception e) {
     58             e.printStackTrace();
     59         }
     60         return result.trim();
     61     }
     62  
     63     /**
     64      * 获取硬盘序列号
     65      * 
     66      * @param drive
     67      *            盘符
     68      * @return
     69      */
     70     public static String getHardDiskSN(String drive) {
     71         String result = "";
     72         try {
     73             File file = File.createTempFile("realhowto", ".vbs");
     74             file.deleteOnExit();
     75             FileWriter fw = new java.io.FileWriter(file);
     76  
     77             String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n"
     78                     + "Set colDrives = objFSO.Drives\n"
     79                     + "Set objDrive = colDrives.item(\""
     80                     + drive
     81                     + "\")\n"
     82                     + "Wscript.Echo objDrive.SerialNumber"; // see note
     83             fw.write(vbs);
     84             fw.close();
     85             Process p = Runtime.getRuntime().exec(
     86                     "cscript //NoLogo " + file.getPath());
     87             BufferedReader input = new BufferedReader(new InputStreamReader(p
     88                     .getInputStream()));
     89             String line;
     90             while ((line = input.readLine()) != null) {
     91                 result += line;
     92             }
     93             input.close();
     94         } catch (Exception e) {
     95             e.printStackTrace();
     96         }
     97         return result.trim();
     98     }
     99  
    100     /**
    101      * 获取CPU序列号
    102      * 
    103      * @return
    104      */
    105     public static String getCPUSerial() {
    106         String result = "";
    107         try {
    108             File file = File.createTempFile("tmp", ".vbs");
    109             file.deleteOnExit();
    110             FileWriter fw = new java.io.FileWriter(file);
    111             String vbs = "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
    112                     + "Set colItems = objWMIService.ExecQuery _ \n"
    113                     + "   (\"Select * from Win32_Processor\") \n"
    114                     + "For Each objItem in colItems \n"
    115                     + "    Wscript.Echo objItem.ProcessorId \n"
    116                     + "    exit for  ' do the first cpu only! \n" + "Next \n";
    117             fw.write(vbs);
    118             fw.close();
    119             Process p = Runtime.getRuntime().exec(
    120                     "cscript //NoLogo " + file.getPath());
    121             BufferedReader input = new BufferedReader(new InputStreamReader(p
    122                     .getInputStream()));
    123             String line;
    124             while ((line = input.readLine()) != null) {
    125                 result += line;
    126             }
    127             input.close();
    128             file.delete();
    129         } catch (Exception e) {
    130             e.fillInStackTrace();
    131         }
    132         if (result.trim().length() < 1 || result == null) {
    133             result = "无CPU_ID被读取";
    134         }
    135         return result.trim();
    136     }
    137  
    138     /**
    139      * 获取MAC地址
    140      */
    141     public static String getMac() {
    142         try {
    143             byte[] mac = NetworkInterface.getByInetAddress(InetAddress.getLocalHost()).getHardwareAddress();
    144             StringBuffer sb = new StringBuffer();
    145             for (int i = 0; i < mac.length; i++) {
    146                 if (i != 0) {
    147                     sb.append("-");
    148                 }
    149                 String s = Integer.toHexString(mac[i] & 0xFF);
    150                 sb.append(s.length() == 1 ? 0 + s : s);
    151             }
    152             return sb.toString().toUpperCase();
    153         } catch (Exception e) {
    154             return "";
    155         }
    156  
    157     }
    158 
    159     
    160     public static void main(String[] args) throws Exception {
    161         System.out.println(getCPUSerial());//CPU
    162         System.out.println(getMotherboardSN());//主板
    163         System.out.println(getHardDiskSN("c"));//c盘
    164         System.out.println(getMac());//MAC
    165         String msg  = getCPUSerial()+getMotherboardSN().replace(".", "")+getHardDiskSN("c")+getMac().replace("-", "");
    166         System.out.println("原始数据:"+msg);
    167         
    168         String encrypt = DesUtil.encrypt(msg);
    169         System.out.println("加密:"+encrypt);
    170         String decrypt = DesUtil.decrypt(encrypt);
    171         System.out.println("解密:"+decrypt);
    172     }
    173 }

     

    转载于:https://www.cnblogs.com/sunBinary/p/9870535.html

    展开全文
  • Java调用硬件接口

    2020-08-21 13:15:25
    使用Java调用DLL动态链接库的方案通常有三种:JNI, Jawin, Jacob. 其中JNI(Java Native Interface)是Java语言本身提供的调用本地已编译的函数库的方法,本身具有跨平台性,可以在不同的 机器上调用不同的本地库。...
  • Java简介及配置环境

    2017-03-25 16:03:37
    1、Java简介 --------语言起源 Java是SUN ( Stanford University Network 斯坦福大学网络公司 ) 1995年推出的一门高级编程语言。 Java名称的来源 Java最初被命名为Oak,目标在于家用电器等小型系统的编程语言,随着...
  • 本人小白一个,刚刚入门java想跟大家一起分享一下我学习的一些... 计算机(Computer)分硬件和软件,从硬件开始(只是一些基础) ① 硬件:指由电子,机械和电光元件所组成的各种物理装置的总称. 通常有CPU,主板, 内存、电
  • 2、操作系统:(Operating System,简称OS):是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。 3、平台(硬件+OS)的...
  • 计算机硬件的知识在大一学过,今天按照老师的讲解和自己的掌握做了一个计算机硬件总结: 学习Java这门语言可以做有关软件开发方面的工作,关于软件开发: 软件 按照特定顺序组织的计算机数据和指令的集合 ...
  • 向下管理计算机的硬件(CPU、内存计算机硬件、硬件协调工作是由操作系统来统一调配) 向上为软件的运行提供基础平台 软件的运行需要使用内存 CPU等计算机的硬件 软件不能直接操作硬件 软件的运行需要操作系统...
  • Java串口编程控制硬件

    千次阅读 2019-09-20 17:19:46
    还是半年前接触的JAVA串口编程控制硬件,现在项目中又即将运用到,所以特别写成博客记录,同时分享交流。 Java环境中的JDK是本身不带有串口的jar包的,需要我们自己下载然后配置到本地的JDK之中,我们采用RXTX串口...
  • java开发环境配置及软件下载

    千次阅读 2016-07-25 12:21:40
    进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置: 1、下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是:jdk-6u14-windows-i586.exe 2、安装jdk-6u14-windows-i586....
  • 最近看到有人新手玩家在玩java的时候关于环境变量的配置遇到不少问题 最多的大概就是 'javac' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 tips:高版本的jdk是不需要配置classpath的 话不多少,配置如下...
  • WIN10 java运行环境的配置

    千次阅读 2017-09-06 17:25:43
    WIN10 java运行环境的配置个人推荐官网的JDK文件,虽然速度可能不快,但是官方出版,必属精品,,, 下载地址推荐: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 1、...
  • 如何选择一台适合Java开发的电脑这个问题是很多初学者刚开始都会问的问题,也会去搜索一些相关的推荐答案 先说说我的电脑配置 操作系统 Microsoft Windows 10 专业版 (64位) CPU (英特尔)Intel(R) Core(TM) i5-...
  • 硬件包括计算机中可以看得见的物理部分,而软件提供看不见的指令,这些指令控制硬件并且要求硬件完成特定的任务。 编写指令让计算机来完成的过程就称为计算机程序设计。 计算机由中央处理器、内存、存储设备、输入...
  • 配置JAVA编程环境

    千次阅读 2017-02-18 22:27:28
    编译型:通过专门的编译器将某种高级语言一次性翻译成计算机硬件能够执行的机器码,并封装成该计算机能够识别的可执行程序的格式。 解释型:通过解释器把高级语言的源程序逐行解释成该计算机可执行的机器码并立即...
  • 常见Dos命令、Java历史、Java跨平台、配置Path环境变量、第一个HelloWorld例子 1.计算机基础 1.1.计算机 电子计算机,俗称电脑,是一种能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件和软件...
  • 配置JavaCV开发环境

    千次阅读 2014-12-25 16:24:35
    JavaCV首先提供了计算机视觉领域研究人员常用的函数库的封装: OpenCV, FFmpeg, libdc1394, PGRFlyCapture, OpenKinect, videoInput, 和ARToolKitPlus。可以通过其中的utility类方便的在包括Android在内的...
  • 本篇概述: 第一部分:软件开发 软件的概述 第二部分: Java的平台...2、环境变量配置 第四部分: Java学习资源的获取 1、视频教程 2、书籍 3、技术网站 第一部分:软件 1、软件是按...
  • Win10配置JDK环境变量电脑重启后java、javac命令无法使用 本人猜测,可能是Win10系统开启了“快速启动”,在电脑开机启动时没能加载环境变量JAVA_HOME 有3种解决方式,建议采用方式3 方式1: 在开始菜单找到...
  • Java System.getProperty(“java.io.tmpdir”) 获取系统临时目录 System.getProperty(“java.io.tmpdir”) 是获取操作系统的缓存临时目录 在windows7中的目录是: ...可以获取系统的配置信息,下面说一下System.get...
  • 3.配置环境变量(直接下载JRE可以不配置) 注:eclipse是用来编译java程序的程序,它用java编写的,它的运行必须依靠java环境,因此必须下载jre或jdk。 JVM(JAVA Virtual Machine): java虚拟机 JRE( Java ...
  • 完整java配置以及简单java源代码使用

    千次阅读 2018-06-12 22:44:30
    3. 掌握Java程序的基本语法,学会编写简单的Java程序。二. 实验要求 1. 下载安装JDK 软件开发包,并设置环境变量。 2. 掌握使用JDK编写Java程序的步骤。 3. 编写一个简单的 Java Application程序。4. 编写一个...
  • 计算机硬件 计算机软件 软件开发 计算机语言 人机交互方式 键盘功能键及快捷键介绍 常用的DOS命令 Java语言概述 JDK的下载,安装 HelloWorld案例 环境变量的配置 注释 关键字 标识符 01.01_...
  • Hadoop 推荐硬件配置

    万次阅读 2014-01-15 15:32:04
    下面是各种硬件配置不同的工作负载,包括我们原来的“基点”的建议名单:  轻型处理配置(1U/machine)的:两个四核CPU,8GB内存,4个磁盘驱动器(1TB或2TB)。注意CPU密集型的工作,如自然语言处理涉及加载到RAM...
  • OpenWrt 硬件 环境配置编译

    千次阅读 2019-11-26 23:51:58
    文章目录前言硬件OpenWrt官网环境配置源码下载编译刷机微信公众号 前言 OpenWrt是Linux的一个发行版, 主流的路由器固件, 2019年11月10号release了 18.06.5, 封存版本有: OpenWrt 18.06.4 OpenWrt 18.06.3 OpenWrt ...
  • Java基础知识图解1.1 程序设计1.2 程序设计语言1.3 软件开发介绍**语言发展趋势图统计网站:**https://www.tiobe.com/tiobe-index/2.计算机结构:硬件和软件2.1 计算机硬件2.1.1 中央处理器CPU2.1.2 比特(bit)和...
  • 我的电脑:软件与硬件配置

    千次阅读 2007-07-07 12:39:00
     java: 6.0  IDE:eclipse 3.2  mysql  server:5.0.38-Ubuntu  client:5.0.38 phpmyadmin  compress tools  rar,zip  font  黑体  input method  fctix  chat tools  gaim for msn  other  ssh,bind ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 70,385
精华内容 28,154
关键字:

java电脑硬件配置

java 订阅