1、新建一个专门用来得到电脑的MAC地址对象类,然后对其进行调用
MacAddress.java
import java.io.*;
import java.util.*;
import java.util.regex.*;
public class MacAddress {
private static final String[] windowsCommand = {"ipconfig", "/all"};
private static final String[] linuxCommand = {"/sbin/ifconfig", "-a"};
private static final Pattern macPattern = Pattern.compile(".*((:?[0-9a-f]{2}[-:]){5}[0-9a-f]{2}).*", Pattern.CASE_INSENSITIVE);
private static List<String> getMacAddressList() throws IOException {
ArrayList<String> macAddressList = new ArrayList<String>();
final String os = System.getProperty("os.name");
final String[] command;
if (os.startsWith("Windows")) {
command = windowsCommand;
} else if (os.startsWith("Linux")) {
command = linuxCommand;
} else {
throw new IOException("Unknown operating system: " + os);
}
final Process process = Runtime.getRuntime().exec(command);
// Discard the stderr
new Thread() {
@Override
public void run() {
try {
InputStream errorStream = process.getErrorStream();
while (errorStream.read() != -1) {
}
errorStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
// Extract the MAC addresses from stdout
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
for (String line = null; (line = reader.readLine()) != null;) {
Matcher matcher = macPattern.matcher(line);
if (matcher.matches()) {
//macAddressList.add(matcher.group(1));
macAddressList.add(matcher.group(1).replaceAll("[-:]", ""));
}
}
reader.close();
return macAddressList;
}
public static String getMacAddress() {
try {
List<String> addressList = getMacAddressList();
if (addressList.isEmpty()) {
return "";
}
return addressList.get(0);
} catch (IOException e) {
e.printStackTrace();
return "";
}
}
public static String[] getMacAddresses() {
try {
return getMacAddressList().toArray(new String[0]);
} catch (IOException e) {
e.printStackTrace();
return new String[0];
}
}
}
2、建一个主类对其进行调用
import java.io.IOException;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
MacAddress mac = new MacAddress();
System.out.println("本电脑的MAC地址为:"+mac.getMacAddress());
}
}
any question to call 13886053422 or QQ of 526151410
分享到:
相关推荐
JAVA 获取网卡物理地址(Windows 和 Linux) 在 Java 中获取网卡物理地址是一项常见的需求,特别是在开发网络相关的应用程序时。网卡物理地址,也称为 MAC 地址,是一个唯一的识别码,用来标识网络设备。今天,我们...
在Java编程中,读取服务器硬件信息是一项重要的任务,尤其对于跨平台的应用程序来说,能够兼容Windows、Linux和Mac OS等不同操作系统是必不可少的。本文将深入探讨如何使用Java来获取这些不同系统的硬件信息。 首先...
这个Java程序枚举了所有活动的网络接口,并打印出每个接口的MAC地址。注意,这个方法可能会返回多个MAC地址,特别是当系统有多个网络接口时。 总结来说,获取MAC地址涉及对不同操作系统的理解以及利用适当的语言...
2. **跨平台性**:由于Java的“一次编写,到处运行”特性,这个网络唤醒工具可以在任何支持Java的平台上运行,如Windows、Linux、Mac OS等。这意味着开发者只需要编写一套代码,用户无论在哪个操作系统上都可以使用...
Java程序的发布通常涉及到将源代码编译、打包和部署等多个步骤,以便用户可以在不同的环境中运行。"项目打包工具发布Java程序"这个标题暗示了我们正在讨论如何利用特定的工具来简化这一流程,使得Java应用程序可以以...
1. **反编译**:Apktool能够将APK中的Dex文件(Dalvik Executable,Android应用程序的执行格式)转换为Java源代码,使开发者可以查看和理解应用程序的逻辑结构。这对于学习他人代码、调试或进行二次开发非常有帮助。...
在这个“Java免费学小程序之Java实现快速电脑程序启动”的主题中,我们将深入探讨如何利用Java编写小程序,来实现在计算机上快速启动应用程序的功能,以此来提升操作体验和展示Java的魅力。 首先,我们需要理解Java...
值得注意的是,由于KEmulator是基于JAVA的,因此它具备跨平台的能力,尽管这里列出的文件主要针对Windows系统,但KEmulator应该也支持其他操作系统,如Linux和Mac OS。 总的来说,KEmulator通过集成各种底层库和...
在Windows系统中,可以使用Winsock API,而在Linux或Mac OS中,可以利用socket库和`ifconfig`命令。对于Java开发者,可以使用`java.net.NetworkInterface`类;对于Python程序员,可以利用`socket`和`os`模块。这些...
由于Java的跨平台特性,VNC Java客户端可以在任何安装了Java运行环境的设备上运行,无论是Windows、Mac还是Linux。Java客户端通过实现VNC协议,与VNC服务端建立连接,实现远程桌面的显示和操作。Java客户端可能包含...
"java_windows_32位与64位串口驱动"这个压缩包提供了适用于不同系统环境的驱动,确保无论是在32位还是64位的Windows操作系统上,Java程序都能正确地与串行端口进行交互。由于压缩包不包含Java Development Kit (JDK)...
Java的可移植性使得开发者能够编写在各种操作系统上运行的代码,包括Windows、Linux和Mac OS等。对于局域网监控程序,Java的优势在于它能够方便地处理网络通信,提供了丰富的类库如Socket和ServerSocket,支持TCP/IP...
同时,"适用很多系统"暗示这款模拟器可能跨平台,可以在多种操作系统上运行,如Windows、Linux或Mac OS等。 针对压缩包中的文件名“KEmulator_lite_win32_release_098_200812042313”,我们可以推测这是一款名为...
在编程环境中,如Python、Java、C#等,也有相应的库函数或API可以用来获取MAC地址,比如Python的`uuid.getnode()`函数,Java的`java.net.NetworkInterface`类等。 需要注意的是,有些网络设备或虚拟机可能会使用...
它主要用于查看Java字节码,将编译后的.class文件转换回源代码的形式,这对于逆向工程、调试和学习已有的Java程序非常有用。当原始源代码丢失或不可用时,JD-GUI提供了一种方法来理解程序的内部工作原理。 在...
这款PC电脑版JAVA模拟器是专为个人电脑设计的,旨在提供一个便捷的平台来测试和运行Java程序。 首先,我们要理解Java模拟器的工作原理。Java是一种跨平台的编程语言,其“一次编写,到处运行”的理念依赖于Java...
5. **跨平台支持**:除了macOS,Java JDK也适用于Windows和Linux操作系统。在不同的平台上,JDK提供了相应的版本来确保兼容性和性能。 6. **免安装版**:免安装版JDK通常是一个自包含的压缩包,解压后即可使用,...
Java的跨平台能力使得这个翻译词典程序能够在不同的操作系统上运行,包括Windows、Mac OS和Linux等。 Idea是该项目可能使用到的集成开发环境(IDE)——IntelliJ IDEA,这是由JetBrains公司开发的一款强大且高效的...
Java的可移植性使得远程桌面工具能够在不同的操作系统上运行,包括Windows、Mac OS和各种Linux发行版。 2. **远程桌面协议(RDP)**:远程桌面工具通常利用RDP(Remote Desktop Protocol)或类似协议,实现远程会话。...
由于Java语言具有良好的跨平台性,该程序可以在各种操作系统上运行,如Windows、Linux、Mac等。 使用场景: 该程序的使用场景非常广泛,具体包括以下几个方面: 1. 个人用户:用户可以在自己的电脑上使用该程序...