这个代码包含了以前常见的用Runtime实现的方法,已经使用JDK1.6新特性实现的方法。
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.NetworkInterface;
import java.util.Enumeration;
/**
* JDK6新特性,JAVA获得机器MAC地址的方法
*
* @author 老紫竹(Java世纪网,java2000.net)
*/
public class Test {
// 返回一个字节的十六进制字符串
static String hexByte(byte b) {
String s = "000000" + Integer.toHexString(b);
return s.substring(s.length() - 2);
}
public static void main(String[] args) throws Exception {
System.out.println("本机器的所有的网卡MAC发下:");
getMacOnWindow();
getMac();
}
/**
* JDK1.6新特性获取网卡MAC地址
*/
public static void getMac() {
try {
Enumeration<NetworkInterface> el = NetworkInterface.getNetworkInterfaces();
while (el.hasMoreElements()) {
byte[] mac = el.nextElement().getHardwareAddress();
if (mac == null)
continue;
StringBuilder builder = new StringBuilder();
for (byte b : mac) {
builder.append(hexByte(b));
builder.append("-");
}
builder.deleteCharAt(builder.length() - 1);
System.out.println(builder);
}
} catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* 原始的获取网卡MAC地址
*/
public static void getMacOnWindow() {
try {
String mac = null;
Process process = Runtime.getRuntime().exec("ipconfig /all");
BufferedReader buffer = new BufferedReader(new InputStreamReader(process.getInputStream()));
for (String line = buffer.readLine(); line != null; line = buffer.readLine()) {
int index = line.indexOf("Physical Address");
if (index <= 0) {
continue;
}
mac = line.substring(index + 36);
break;
}
buffer.close();
process.waitFor();
System.out.println(mac);
} catch (Exception exception) {
exception.printStackTrace();
}
}
}
分享到:
相关推荐
Java JDK 11.0.8 是Oracle公司发布的Java开发工具包的一个稳定版本,它针对开发者提供了完整的编译、调试和运行Java应用程序所需的环境。这个版本支持Windows和Mac OS操作系统,使得不同平台上的开发者都能方便地...
这个版本号"1.8.0_144"表示这是Java 8更新144,发布于2017年,是一个维护更新,主要修复了安全性和性能问题,并提供了一些新特性。 描述中提到的"支持DDMS",全称为Dalvik Debug Monitor Service(达尔文调试监控...
- **Lambda表达式**:这是JDK8最重要的新特性之一,它允许函数作为方法参数,使得代码更加简洁、易读。Lambda表达式可以替代那些只有一个抽象方法的接口实现,通常用于处理集合数据。 - **方法引用和构造器引用**...
标签中的"jdk1.8"代表的是Java 8版本,这是Java历史上一个重要版本,引入了许多新特性,比如: - Lambda表达式:这是一种简洁的匿名函数写法,用于处理函数式接口,简化了多线程编程和数据处理。 - 方法引用和构造器...
JDK 1.6.0,也被称为Java SE 6,是一个较早的版本,尽管现在已被更现代的版本如Java 8和11取代,但对于学习基础或兼容旧项目仍具有价值。下面我们将详细讨论JDK 1.6.0的安装过程、主要组件及其在Java开发中的重要性...
JDK7是Java的一个重要版本,提供了许多新特性,对开发者来说至关重要。 在Java开发环境中,JDK7扮演着核心角色。以下是一些关于JDK7的关键知识点: 1. **安装JDK**:首先,你需要下载适用于你操作系统的JDK7安装...
JDK 20是Oracle公司发布的最新版本,特别地,这个版本是为macOS操作系统且针对aarch64架构设计的免安装版本,这意味着它不需要传统的安装过程,用户可以直接下载并解压使用,简化了在Mac系统上部署Java环境的步骤。...
Java开发工具包(Java Development Kit,简称JDK)是Java编程语言的核心组件,它包含了Java运行环境(Java Runtime Environment,JRE)、Java编译器、Java文档和Java各种类库等。`jdk1.8.0_171` 是JDK的一个具体版本...
总之,GraalVM JDK 17 for macOS Arm64 是面向新一代Apple设备的强大工具,它提供了高效的Java运行环境,以及多语言支持和高级优化技术,对于开发者来说,这是一个提升生产力和应用性能的理想选择。
Java JDK 7 绿色版是一款轻量级的Java开发工具包,无需安装即可直接运行。这个版本特别适合那些希望快速部署或者在不同系统间移动开发环境的开发者。JDK (Java Development Kit) 是Java编程语言的核心组件,包含了...
6. **多平台支持**:JDK 1.7 支持多种操作系统平台,包括Windows、Linux、Mac OS X等,这为开发者提供了更多的选择。 #### 免安装版本的优势 1. **便捷性**:免安装版意味着用户无需进行复杂的安装步骤,只需解压...
Java Development Kit(JDK)是Java编程语言的核心组件,它为开发者提供了...不过,由于Java 7已经不再受到官方的长期支持,对于新的项目,建议使用更新的版本,如Java 8或更高版本,以获得最新的安全更新和功能改进。
JDK 8作为Java编程语言的一个重要版本,引入了许多新特性,提升了开发效率和性能。在选择JDK 8的安装时,用户通常会面临32位和64位版本的选择。这两个版本主要的区别在于它们支持的内存大小以及适用的操作系统类型。...
OpenJDK11U-jdk_x64_11.0.6_10.pkg.zip 是一个针对Mac OS系统的OpenJDK 11更新版本的压缩包文件。OpenJDK,全称为Open Source Java ...安装这个包可以帮助开发者在他们的Mac机器上构建和运行基于Java 11的应用程序。
Java Development Kit(JDK)是开发和运行Java应用程序的基础,尤其对于Web开发工具如PHPStorm和WebStorm来说,它是必不可少的组件。本指南将详细介绍如何在64位操作系统上安装JDK,并进行必要的配置,以解决可能...
1. **Record类**:这是JDK16引入的一项新特性,允许开发者创建简单的数据结构,这些结构由不可变的、final的字段组成,自动实现了equals()、hashCode()和toString()方法。 2. **JEP 391: macOS/AArch64 Port**:这...
JDK 1.8是Java 8的版本号,引入了许多重要的新特性,如lambda表达式、函数式接口、Stream API以及改进的日期和时间API,这些都极大地增强了开发者的生产力。 自动部署脚本通常由shell脚本编写,用于简化和自动化...
JDK 8作为Java编程语言的重要版本,引入了许多重要的特性,如Lambda表达式、默认方法(在接口中)、新的日期/时间API、Stream API以及改进的类型推断。这些特性大大提升了代码的简洁性和可读性,同时也提高了开发...
JDK 17是Java的一个长期支持(LTS)版本,这意味着它将获得更长时间的安全更新和技术支持。Java 17包含了多个新特性和改进,比如增强的switch表达式、密封类、文本块等。这些特性提升了代码的可读性和安全性。 **...
对于Mac OS X用户来说,下载并安装“jdk-8u251-macosx-x64.dmg”文件意味着将获得一个64位的Java开发环境,可以用于开发和运行各种Java应用程序和服务器。安装完成后,开发者可以在终端中使用`java -version`命令...