Windows 7 中的 RXTX 问题,但 Windows 8 中没有

Problems with RXTX in Windows 7, but not in Windows 8

我正在做一个使用 RXTX 的项目。我将它导出为一个可执行的 jar,它位于如下文件夹中:

MainFolder
 - lib
   - RXTXcomm.jar
   - ... more jars
 - logs
 - config.properties
 - App.jar             <-- Executable jar

在我的计算机 (Windows 8.1) 中运行完美,但它也必须在其他计算机 (Windows 7) 上运行。程序在此方法停止的位置:

public void getPortIdentifiers() {
    if(testMode) {
        // TODO puertos.elements();

    } else {
        if(Controller.debug) logger.info("Obteniendo identificadores... ");
        //identificadores = CommPortIdentifier.getPortIdentifiers();
        for(int i=0; i<15; i++) {
            String commPort = "COM"+i;
            try {
                CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier(commPort);
                logger.info("Puerto {} OK", commPort);
            } catch (NoSuchPortException e) {
                logger.error("Puerto {} FAIL", commPort);
            }
        }       
        
        if(Controller.debug) logger.info("... Listo!");
    }
}

程序在 CommPortIdentifier.getPortIdentifiers() 停止,阅读 this 问题让我尝试使用 for 列出所有可能的端口。但在我的日志中,我总是一样:

...

2015-05-14 12:56:59 [INFO ] Controller - Cargando los puertos

2015-05-14 12:56:59 [INFO ] CommunicationManager - Obteniendo identificadores...

之前的问题,darkhelmet说在Windows7上重建问题解决了。但是我的必须在Windows8和Windows7上工作,我必须有吗?两个工作区各一个?

最后我可以在其他 Windows 8 上测试它,但它也没有用。使用这个 W8 我遇到了两个问题 1. 其他 java 版本。 2. 没有 rxtxSerial64.dll.

为了使其与更多 java 版本兼容,我用 jdk6 重建了我的项目(以防万一 :D)。

对于第二个问题,我只是将 rxtxSerial.dll 和 rxtxSerial64.dll 放在文件夹中,在我的 App.jar.

级别

对于 Windows7 台计算机,问题只是第二个,因为两台计算机的 jre 版本相同。

希望对大家有帮助