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

使用webcam-capture Java库时遇WebcamException错误求助

解决webcam-capture库WebcamException及UnsatisfiedLinkError问题

你的核心错误是java.lang.UnsatisfiedLinkError,这说明webcam-capture依赖的原生本地库没有正确加载,下面是具体解决步骤:

1. 升级webcam-capture版本

你使用的0.3.12版本过于老旧,存在大量兼容性问题,尤其是对高版本Java的支持不足。建议直接升级到最新稳定版,修改pom.xml配置:

<dependency>
    <groupId>com.github.sarxos</groupId>
    <artifactId>webcam-capture</artifactId>
    <version>0.3.16</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.36</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.36</version>
</dependency>

2. 检查Java版本兼容性

0.3.12版本仅支持Java 8及以下版本,如果你的项目运行在Java 11+环境,升级库版本是必须的——新版本已修复高版本Java的兼容性问题。若必须使用老版本,需切换到Java 8运行项目。

3. 配置摄像头权限

  • Windows:打开系统设置-隐私和安全性-摄像头,确保当前程序被允许访问摄像头。
  • macOS:进入系统偏好设置-安全性与隐私-隐私-摄像头,勾选你的IDE或运行程序。
  • Linux:将当前用户加入video组,执行命令后重新登录生效:
sudo usermod -aG video $USER

4. 尝试更换摄像头驱动

如果升级库后仍有问题,可以强制指定其他驱动,比如Linux环境下的V4L驱动:

Webcam.setDriver(new WebcamV4lDriver());
Webcam webcam = Webcam.getDefault();
webcam.open();
ImageIO.write(webcam.getImage(), "PNG", new File("file_path"));

问题详情

尝试使用webcam-capture Java库,但始终出现WebcamException错误。

pom.xml配置

<dependency>
    <groupId>com.github.sarxos</groupId>
    <artifactId>webcam-capture</artifactId>
    <version>0.3.12</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.36</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.36</version>
</dependency>

运行代码

Webcam webcam = Webcam.getDefault();
webcam.open();
ImageIO.write(webcam.getImage(), "PNG", new File("file_path"));

报错信息

[main] INFO com.github.sarxos.webcam.Webcam - WebcamDefaultDriver capture driver will be used
Exception in thread "main" com.github.sarxos.webcam.WebcamException: java.util.concurrent.ExecutionException: com.github.sarxos.webcam.WebcamException: Cannot execute task
    at com.github.sarxos.webcam.WebcamDiscoveryService.getWebcams(WebcamDiscoveryService.java:124)
    at com.github.sarxos.webcam.Webcam.getWebcams(Webcam.java:893)
    at com.github.sarxos.webcam.Webcam.getDefault(Webcam.java:956)
    at com.github.sarxos.webcam.Webcam.getDefault(Webcam.java:933)
    at com.github.sarxos.webcam.Webcam.getDefault(Webcam.java:911)
    at com.datacollection.Main.main(Main.java:47)
Caused by: java.util.concurrent.ExecutionException: com.github.sarxos.webcam.WebcamException: Cannot execute task
    at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
    at com.github.sarxos.webcam.WebcamDiscoveryService.getWebcams(WebcamDiscoveryService.java:116)
    ... 5 more
Caused by: com.github.sarxos.webcam.WebcamException: Cannot execute task
    at com.github.sarxos.webcam.WebcamProcessor$AtomicProcessor.process(WebcamProcessor.java:72)
    at com.github.sarxos.webcam.WebcamProcessor.process(WebcamProcessor.java:140)
    at com.github.sarxos.webcam.WebcamTask.process(WebcamTask.java:46)
    at com.github.sarxos.webcam.ds.buildin.WebcamDefaultDriver$GetDevicesTask.getDevices(WebcamDefaultDriver.java:79)
    at com.github.sarxos.webcam.ds.buildin.WebcamDefaultDriver.getDevices(WebcamDefaultDriver.java:124)
    at com.github.sarxos.webcam.WebcamDiscoveryService$WebcamsDiscovery.call(WebcamDiscoveryService.java:36)
    at com.github.sarxos.webcam.WebcamDiscoveryService$WebcamsDiscovery.call(WebcamDiscoveryService.java:26)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.UnsatisfiedLinkError: com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber.getVideoDevices()Lorg/bridj/Pointer;
    at com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber.getVideoDevices(Native Method)
    at com.github.sarxos.webcam.ds.buildin.WebcamDefaultDriver$GetDevicesTask.handle(WebcamDefaultDriver.java:93)
    at com.github.sarxos.webcam.WebcamProcessor$AtomicProcessor.run(WebcamProcessor.java:81)
    ... 3 more

Process finished with exit code 1

内容的提问来源于stack exchange,提问作者fallingriptide

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 04:45:44