【发布时间】:2021-11-07 04:46:38
【问题描述】:
我使用以下代码获取主板序列号。但我得到了 o/p 结果为空。我在这段代码中犯了什么错误?
File file = File.createTempFile("realhowto",".vbs");
file.deleteOnExit();
FileWriter fw = new java.io.FileWriter(file);
String vbs =
"Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
+ "Set colItems = objWMIService.ExecQuery _ \n"
+ " (\"Select * from Win32_BaseBoard\") \n"
+ "For Each objItem in colItems \n"
+ " Wscript.Echo objItem.SerialNumber \n"
+ " exit for ' do the first cpu only! \n"
+ "Next \n";
fw.write(vbs);
fw.close();
Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
BufferedReader input =
new BufferedReader
(new InputStreamReader(p.getInputStream()));
String line;
while ((line = input.readLine()) != null) {
result += line;
}
if(result.equalEgnoreCase(" ") {
System.out.println("Result is empty");
} else {
System.out.println("Result :>"+result);
}
input.close();
}
【问题讨论】:
-
我会寻找一种不意味着从 Java 执行 VBScript 的方法。你知道COM4J吗?我很确定您可以从中使用 WMI。
-
@zneak:我以前没用过。从哪里获得 com4j.jar 文件?因为 java.net 上缺少 com4j site.
-
这很尴尬。上次我检查下载链接是否有效;对不起,我帮不了你。
-
那么,试试JACOB...sourceforge.net/projects/jacob-project
-
COM4J 下载:java.net/projects/com4j/downloads