这个代码包含了以前常见的用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操作系统,使得不同平台上的开发者都能方便地...
随着macOS不断更新,新版本的JDK会及时跟进,确保Java开发者能够利用最新操作系统的特性,同时保持应用的兼容性和稳定性。 JDK 21.0.4是为macOS平台特别优化的Java开发工具集,它支持开发者构建高效、安全的Java...
这个版本号"1.8.0_144"表示这是Java 8更新144,发布于2017年,是一个维护更新,主要修复了安全性和性能问题,并提供了一些新特性。 描述中提到的"支持DDMS",全称为Dalvik Debug Monitor Service(达尔文调试监控...
- **Lambda表达式**:这是JDK8最重要的新特性之一,它允许函数作为方法参数,使得代码更加简洁、易读。Lambda表达式可以替代那些只有一个抽象方法的接口实现,通常用于处理集合数据。 - **方法引用和构造器引用**...
在JDK 21.0.4版本中,开发者可以体验到Java的新特性和更新。Java平台一直在不断地更新,以适应现代编程的需求,包括对新硬件的支持、性能优化以及语言和API的改进。版本21.0.4可能包含了对之前版本的错误修复以及...
标签中的"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环境的步骤。...
总之,GraalVM JDK 17 for macOS Arm64 是面向新一代Apple设备的强大工具,它提供了高效的Java运行环境,以及多语言支持和高级优化技术,对于开发者来说,这是一个提升生产力和应用性能的理想选择。
Java开发工具包(Java Development Kit,简称JDK)是Java编程语言的核心组件,它包含了Java运行环境(Java Runtime Environment,JRE)、Java编译器、Java文档和Java各种类库等。`jdk1.8.0_171` 是JDK的一个具体版本...
Java Development Kit(JDK)是Java编程语言的核心组件,它为开发者提供了...不过,由于Java 7已经不再受到官方的长期支持,对于新的项目,建议使用更新的版本,如Java 8或更高版本,以获得最新的安全更新和功能改进。
6. **多平台支持**:JDK 1.7 支持多种操作系统平台,包括Windows、Linux、Mac OS X等,这为开发者提供了更多的选择。 #### 免安装版本的优势 1. **便捷性**:免安装版意味着用户无需进行复杂的安装步骤,只需解压...
Java JDK 7 绿色版是一款轻量级的Java开发工具包,无需安装即可直接运行。这个版本特别适合那些希望快速部署或者在不同系统间移动开发环境的开发者。JDK (Java Development Kit) 是Java编程语言的核心组件,包含了...
对于JDK的未来版本,我们也可以预见,苹果M系列芯片的性能和特性将继续得到进一步的挖掘和应用,从而推动Java技术在Mac平台上的发展。 根据Apple的技术路线图,M系列芯片旨在取代长期使用的Intel芯片,从而为未来的...
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-8u162版本,作为Java Development Kit的一个更新版本,其为开发人员提供了诸多新特性和改进,这对于理解和掌握Java编程语言有着举足轻重的作用。 JDK-8u162版本包含了Java SE 8的更新,该版本在性能...