Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces(); while (networkInterfaces.hasMoreElements()) { NetworkInterface networkInterface = networkInterfaces.nextElement(); byte[] hardwareAddress = networkInterface.getHardwareAddress(); if (hardwareAddress != null) { for (int i = 0; i < hardwareAddress.length; i++) { System.out.print(String.format("%x", hardwareAddress[i])); if (i != hardwareAddress.length - 1) { System.out.print(":"); } } System.out.println(); } }以前的方法public static String[] getMacs() throws IOException {Runtime runtime = Runtime.getRuntime();List<String> alMac = new ArrayList<String>();BufferedReader rd = null;try {Process process = runtime.exec("ipconfig /all");//這種方法不能跨os, 只能根據不同的os寫不同的命令InputStream is = process.getInputStream();rd = new BufferedReader(new InputStreamReader(is));String line = null;while ((line = rd.readLine()) != null) {if (line.indexOf("物理地址") > -1 || line.toLowerCase().startsWith("physical address")) {int index = line.lastIndexOf(":");if (line.length() - 1 >= index && index > -1) {String mac = line.substring(index + 1);alMac.add(mac);}}}} finally {if (rd != null) rd.close();}return alMac.toArray(new String[0]);}