简单查了下jdk文档
没找到相关api个人观点(仅供参考):
                在java中调用其它语言的函数(方法)

解决方案 »

  1.   

    我见过,记得好像是需要使用JNI调用本地ipconfig/all命令,然后写代码分析出返回的数据,从中得到MAC地址
      

  2.   

    JAVA里面是不能直接得到MAC的,只能通过调用原函数,比如C,C++帮助实现,楼上说得也是个方法
      

  3.   

    private static String getMacOnWindow() {
            String s = "";
            try {
                String s1 = "ipconfig /all";
                Process process = Runtime.getRuntime().exec(s1);
                BufferedReader bufferedreader = new BufferedReader(
                        new InputStreamReader(process.getInputStream()));
                String nextLine;
                for (String line = bufferedreader.readLine(); line != null; line = nextLine) {
                    nextLine = bufferedreader.readLine();
                    if (line.indexOf("Physical Address") <= 0) {
                        continue;
                    }
                    int i = line.indexOf("Physical Address") + 36;
                    s = line.substring(i);
                    break;
                }            bufferedreader.close();
                process.waitFor();
            } catch (Exception exception) {
                s = "";
            }
            return s.trim();
        }
      

  4.   

    不对
    前天我在csdn里面看到和如何获得mac地址
    不过忘记那个帖子了
    好像制止jdk里面有相关的函数
      

  5.   

    谢谢楼主提出的问题
    谢谢foolishidea(foolishidea)!!
      

  6.   

    foolishidea(foolishidea)所说的是正确的!!
      

  7.   

    foolishidea(foolishidea) 这个方法是可以得到服务器端的MAC地址。但是要得不到客房端的MAC地址。所以还请大家继续关心啊。谢谢!!!!!
      

  8.   

    十分感谢foolishidea(foolishidea)的程序代码!!
      

  9.   

    那在xNix上还要写相应的程序吗
      

  10.   

    为什么要加36?
                    int i = line.indexOf("Physical Address") + 36;
      

  11.   

    private static String getMacOnWindow() {
            String s = "";
            try {
                String s1 = "netstar -e";
                Process process = Runtime.getRuntime().exec(s1);
                BufferedReader bufferedreader = new BufferedReader(
                        new InputStreamReader(process.getInputStream()));
                String nextLine;
                for (String line = bufferedreader.readLine(); line != null; line = nextLine) {
                    nextLine = bufferedreader.readLine();
                    if (line.indexOf("Physical Address") <= 0) {
                        continue;
                    }
                    int i = line.indexOf("Physical Address") + 36;
                    s = line.substring(i);
                    break;
                }            bufferedreader.close();
                process.waitFor();
            } catch (Exception exception) {
                s = "";
            }
            return s.trim();
        }