早上好,
我在Windows 7 64位上使用/或安装rxtx时遇到问题.我之前在x86 win XP系统上使用它并没有问题.由于某些原因重新安装到这个新系统,rxtx无法找到任何端口.我已经尝试了rxtx安装,Cloud Hopper的64位本机库并删除所有rxtx文件并从头开始.找到了RXTXcomm.jar,我可以浏览NetBeans中的软件包,但实现似乎已被破坏或找不到.
每次执行时此行都会失败:
comPort = "COM1";
portId = CommPortIdentifier.getPortIdentifier(comPort);
Run Code Online (Sandbox Code Playgroud)
并抛出NoSuchPortException.
使用它列出串行端口不会产生任何结果.
Enumeration ports = CommPortIdentifier.getPortIdentifiers();
String portArray[] = null;
while (ports.hasMoreElements()) {
CommPortIdentifier port = (CommPortIdentifier) ports.nextElement();
System.out.println(port.getName());
}
Run Code Online (Sandbox Code Playgroud)
我已经检查过串口是否可用所以此时我想知道本机库是否只是针对Windows 7 64位而被破坏了.
有没有人在Windows 7 64位下成功使用RXTX 2.2pre2?
构造函数中的违规代码部分:
public SerialControl(String name, String comPort, int baudrate, int databits, String parity, double stopbits) throws Exception {
int stop = 0;
int data = 0;
int par = 0;
this.name=name;
// Sanity checks and interpretation
if (baudrate > 115200 …Run Code Online (Sandbox Code Playgroud) 我正在运行一个简单的扫描程序来解析一个字符串,但是我发现如果经常调用,我会得到OutOfMemory错误.此代码作为对象的构造函数的一部分调用,该对象是为字符串数组重复构建的:
编辑:这是更多信息的构造函数; 关于Scanner的try-catch之外没有更多的事情发生
public Header(String headerText) {
char[] charArr;
charArr = headerText.toCharArray();
// Check that all characters are printable characters
if (charArr.length > 0 && !commonMethods.isPrint(charArr)) {
throw new IllegalArgumentException(headerText);
}
// Check for header suffix
Scanner sc = new Scanner(headerText);
MatchResult res;
try {
sc.findInLine("(\\D*[a-zA-Z]+)(\\d*)(\\D*)");
res = sc.match();
} finally {
sc.close();
}
if (res.group(1) == null || res.group(1).isEmpty()) {
throw new IllegalArgumentException("Missing header keyword found"); // Empty header to store
} else {
mnemonic = res.group(1).toLowerCase(); // Store …Run Code Online (Sandbox Code Playgroud)