| | |
| | | return; |
| | | } |
| | | |
| | | System.out.println("开始初始化 jSerialComm 本地库..."); |
| | | |
| | | // 第一步:设置系统属性,阻止自动下载 |
| | | setCriticalSystemProperties(); |
| | |
| | | try { |
| | | extractNativeLibraryFromResources(); |
| | | libraryConfigured = true; |
| | | System.out.println("jSerialComm 本地库初始化成功"); |
| | | } catch (Exception e) { |
| | | System.err.println("从资源提取 DLL 失败: " + e.getMessage()); |
| | | // 尝试备用方案 |
| | | try { |
| | | setupLibraryFromFileSystem(); |
| | | libraryConfigured = true; |
| | | System.out.println("从文件系统加载 jSerialComm 成功"); |
| | | } catch (Exception ex) { |
| | | System.err.println("所有加载方式都失败: " + ex.getMessage()); |
| | | // 最后尝试:允许 jSerialComm 使用默认方式 |
| | |
| | | // 禁用日志和调试 |
| | | System.setProperty("com.fazecast.jSerialComm.debug", "false"); |
| | | System.setProperty("com.fazecast.jSerialComm.log", "false"); |
| | | |
| | | System.out.println("已设置 jSerialComm 系统属性"); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | // 检查 DLL 是否已存在且可用 |
| | | if (Files.exists(dllPath)) { |
| | | System.out.println("DLL 已存在于: " + dllPath); |
| | | // 设置库路径 |
| | | System.setProperty(LIB_PROPERTY, targetDir.toString()); |
| | | return; |
| | |
| | | } |
| | | } |
| | | |
| | | System.out.println("DLL 已提取到: " + dllPath); |
| | | |
| | | // 设置库路径 |
| | | System.setProperty(LIB_PROPERTY, targetDir.toString()); |
| | | System.setProperty("java.library.path", |
| | |
| | | for (String path : possiblePaths) { |
| | | File dllFile = new File(path); |
| | | if (dllFile.exists()) { |
| | | System.out.println("找到 DLL: " + dllFile.getAbsolutePath()); |
| | | // 使用 DLL 所在目录 |
| | | File parentDir = dllFile.getParentFile(); |
| | | System.setProperty(LIB_PROPERTY, parentDir.getAbsolutePath()); |