You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java程序抛出java.lang.UnsatisfiedLinkError: no jSerialComm问题求助

串口通信库jSerialComm加载异常问题

问题现象

勾选特定选项后Java程序抛出异常,否则可正常运行并输出预期结果;JavaFX项目中使用同一jar包也出现运行报错。

详情

需要通过串口(SerialPort)与设备通信,之前因RxTx库存在bug切换至jSerialComm库,按官方说明完成配置后,程序虽能启动但抛出异常,影响预期输出。

异常信息

java.lang.UnsatisfiedLinkError: no jSerialComm in java.library.path: C:\Program Files\Eclipse Adoptium\jdk-21.0.1.12-hotspot\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\WindowsApps\Microsoft.PowerShell_7.4.0.0_x64__8wekyb3d8bbwe;C:\Program Files\Eclipse Adoptium\jdk-21.0.1.12-hotspot\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files\Eclipse Adoptium\jdk-17.0.8.101-hotspot\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Program Files\Maven\apache-maven-3.9.5\bin;C:\Users\Toobaa.khan\AppData\Local\Microsoft\WindowsApps;;C:\Users\Toobaa.khan\AppData\Local\Programs\Microsoft VS Code\bin;.

使用的库

jSerialComm-2.10.4.jar

已尝试的解决方法

  • 将jar文件放置到C:\Program Files\Eclipse Adoptium\jdk-21.0.1.12-hotspot\bin路径
  • 将jar文件放置到C:\Users\Toobaa.khan\AppData\Local\Microsoft\WindowsApps和C:\Users\Toobaa.khan\AppData\Local\Programs\Microsoft VS Code\bin路径
    以上操作后仍出现相同错误。

补充信息

开发平台:Visual Studio Code

pom.xml配置内容

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>app.creatingpdfs</groupId>
    <artifactId>projectcreatepdfs</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>13</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>13</version>
        </dependency>
        <dependency>
            <groupId>com.fazecast</groupId>
            <artifactId>jSerialComm</artifactId>
            <version>[2.10.3,2.10.4]</version>
        </dependency>
        <dependency>
            <groupId>com.aspose.pdf</groupId>
            <artifactId>aspose-pdf</artifactId>
            <version>23.1</version>
        </dependency>

    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <release>1.8</release>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.6</version>
                <executions>
                    <execution>
                        <!-- Default configuration for running -->
                        <!-- Usage: mvn clean javafx:run -->
                        <id>default-cli</id>
                        <configuration>
                            <mainClass>app.creatingpdfs.App</mainClass>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

解决方案

  1. 处理JNI本地库依赖:jSerialComm是JNI库,仅放置jar包无效,需确保对应平台的本地库文件(Windows下为jSerialComm.dll)被正确加载。Maven引入的jSerialComm jar包内已包含各平台本地库,无需手动复制,但要保证依赖完整下载。
  2. 添加JVM运行参数:在VS Code运行配置或Maven插件中指定-Djava.library.path参数。修改javafx-maven-plugin配置示例:
<plugin>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>0.0.6</version>
    <executions>
        <execution>
            <id>default-cli</id>
            <configuration>
                <mainClass>app.creatingpdfs.App</mainClass>
                <jvmArgs>
                    <jvmArg>-Djava.library.path=${project.basedir}/target/classes</jvmArg>
                </jvmArgs>
            </configuration>
        </execution>
    </executions>
</plugin>
  1. 统一JDK版本:pom.xml指定编译版本为1.8,但实际使用JDK21,存在兼容性风险。建议将maven.compiler.source、maven.compiler.target和release参数统一改为21,或更换为与JavaFX13匹配的JDK(如JDK11/13)。
  2. 清理Maven缓存:执行mvn clean install -U命令,强制更新依赖,确保jSerialComm库完整下载。

内容的提问来源于stack exchange,提问作者Bea K.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 15:25:37