我想检查系统中的空闲(未占用)的USB端口列表,当我用CommPortIdentifier.getPortIdentifiers()
检查时,这会返回带有0个元素的Enumeration
我也在类路径中添加了librxtxcomm.jar。
这应返回每个端口详细信息
Enumeration pList = CommPortIdentifier.getPortIdentifiers();
System.out.println(pList.hasMoreElements());
这将返回0表示没有列表/枚举。
休息代码:
public class CommPortLister{
/** Simple test program. */
public static void main(String[] ap) {
new CommPortLister().list();
}
/** Ask the Java Communications API * what ports it thinks it has. */
protected void list() {
// get list of ports available on this particular computer, by calling static method in CommPortIdentifier.
System.out.println("");
Enumeration pList = CommPortIdentifier.getPortIdentifiers();
System.out.println("Before While");
// CommPortIdentifier.getPortIdentifiers();
// Process the list.
System.out.println(pList.hasMoreElements());
while (pList.hasMoreElements()) {
System.out.println("While Loop");
CommPortIdentifier cpi = (CommPortIdentifier) pList.nextElement();
System.out.print("Port " + cpi.getName() + " ");
if (cpi.getPortType() == CommPortIdentifier.PORT_SERIAL) {
System.out.println("is a Serial Port: " + cpi);
} else if (cpi.getPortType() == CommPortIdentifier.PORT_PARALLEL) {
System.out.println("is a Parallel Port: " + cpi);
} else {
System.out.println("is an Unknown Port: " + cpi);
}
}
System.out.println("After While");
}
}
我无法检测USB端口时检测USB端口的代码
答案 0 :(得分:1)
端口号是16位无符号整数,范围从1到65535。 如果您需要知道哪些端口被占用,可以从java调用系统命令“netstat”。
=====被修改=========================== 以上信息适用于传输层逻辑端口。如果要查找外围设备的硬件端口,则需要检查COM端口。我找到了以下教程,也许你可以尝试一下,所以找另一个适合你需要的教程。
http://www.java-samples.com/showtutorial.php?tutorialid=11
你需要javax.comm api。您可以从http://www.java2s.com/Code/Jar/c/Downloadcomm20jar.htm或http://www.oracle.com/technetwork/java/index-jsp-141752.html
抓取它答案 1 :(得分:1)
请尝试使用ServerSocket(portNo)。如果端口中有服务正在运行,则会出错,因此请捕获异常并尝试下一个端口。
答案 2 :(得分:-1)
那么使用它的东西你可以有可用的端口你可以扫描它。
public class GettingAvaliable {
public static void main(String args[]) {
int startPortRange = 0;
int stopPortRange = 65365;
int usedport = 0;
int unusedports = 0;
for (int i = startPortRange; i <= stopPortRange; i++) {
try {
Socket ServerSok = new Socket("127.0.0.1", i);
System.out.println("Port in use: " + i);
usedport++;
ServerSok.close();
} catch (Exception e) {
//e.printStackTrace();
}
System.out.println("Port not in use: " + i);
unusedports++;
if (i == stopPortRange) {
System.out.println("Number of Used Ports In Your Machine: "+usedport);
System.out.println("Number of Unused Ports In Your Machine: "+unusedports);
}
}
}
}