AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > JAVA编程

用纯JAVA语言编程读取MAC地址的实现

51自学网 2015-09-03 http://www.wanshiok.com

 

  执行一个有标准输出的DOS命令,程序执行完后往往不会自动关闭,从而导致Java应用程序阻塞在waitfor( )。导致该现象的原因可能是该命令的输出比较多,而运行窗口的输出缓冲区不够大。解决的办法是,利用Java的Process类提供的方法让Java虚拟机截获DOS运行的标准输出,在waitfor()命令之前读出该缓冲区的内容。以运行命令dir为例,典型的程序如下:

以下是引用片段:
 :
  String line;
  Process process = Runtime.getRuntime().exec("cmd /c dir");
  BufferedReader bufferedReader = new BufferedReader ( new InputStreamReader(process.getInputStream()));
  while ( (line = bufferedReader.readLine()) != -1) System. out.println(line);
  process.waitFor( );
  :3 Process

  Runtime.exec方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获取相关信息。

  抽象类Process封装了一个进程(process),一个正在执行的程序。它主要被当作由Runtime类中的exec( )方法所创建的对象的类型的超类。在抽象类Process中,主要包含了如下一些抽象方法。

  InputStream getInputStream( ):返回一个从进程的out输出流中读输入的输入流。

  OutputStream getOutputStream( ):返回一个从进程的in输入流中写输出的输出流。

  int waitFor( ) throws InterruptedException:返回由进程返回的退出码。这个方法直到调用它的进程中止,才会返回。

  4 程序编写

  我们先来分析ipconfig/all的输出格式:

  图1
点击放大此图片

  从图1中我们看到MAC地址包含的行为:“ Physical Address. . . . . . . . . : 00-10-DC-A9-0B-2C”。为了找到MAC地址,我们一行一行读取字符,只要找到字符串“ Physical Address. . . . . . . . . :”,就可以找到MAC地址了。下面是实现的程序片段:

以下是引用片段:

  Process process = Runtime.getRuntime().exec("cmd /c ipconfig /all");
  BufferedReader bufferedReader =
  new BufferedReader(new InputStreamReader (process.getInputStream()));
  while ( (line=bufferedReader.readLine()) != null){
  if(line.indexOf("Physical Address. . . . . . . . . :") != -1){
  if(line.indexOf(":") != -1){
  physicalAddress = line.substring(line.indexOf(":")+2);
  :

 

 
 
说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
 

上一篇:用AJAX编写用户注册时的应用实例  下一篇:探讨Java与Ruby语言迁移时的安全性