文章目录

    • 前言
        • **常见困境与解决方案**
        • **实际应用价值**
    • 1. Remote JVM Debug
    • 2. 系统要求与环境准备
      • 2.1 服务器环境
      • 2.2 本地开发环境
    • 3. 内网服务器准备及开始
      • 3.1 安装cpolar配置支持远程ssh登录
        • 3.1.1 什么是cpolar?
        • 3.1.2 安装cpolar
        • 3.1.3 注册及配置cpolar系统服务
        • 3.1.4 登录cpolar web ui 管理界面配置ssh端口穿透
          • 3.1.4.1 放行9200端口
          • 3.1.4.2 访问cpolar web ui管理界面
          • 3.1.4.3 保留固定TCP公网地址
          • 3.1.4.4 启用ssh隧道,配置固定tcp地址
          • 3.1.4.5 使用固定的tcp地址进行远程ssh登录
      • 3.2 安装JDK
      • 3.3 上传打包好的Jar文件至服务器
        • 3.3.1 打包springboot项目
        • 3.3.2 上传至服务器
    • 4. 启动 JAR 文件并配置远程调试
      • 4.1 启动 JAR 文件
      • 4.2 cpolar隧道配置
        • 4.2.1 http(8080端口)穿透
        • 4.2.2 调试端口(5005端口)穿透
          • 4.2.2.1 保留固定tcp地址
          • 4.2.2.2 创建新隧道
    • 5.IDEA远程Debug调试内网项目
      • 5.1 idea配置remote jvm debug
      • 5.2 启动及调试
    • 6.可能出现的问题
      • 6.1 访问页面出现404的情况是怎么回事?
    • 7.总结
    • 项目源码
        • cpolar 与IDEA的远程JVM调试技术组合,本质是为内网服务打造了一座“数字桥”。它解决了传统运维场景中最核心的矛盾——物理隔离与实时响应、人工成本与效率提升。无论是深夜救场的核心故障,还是日常代码逻辑验证,这种方案都展现了极高的实用性。对于依赖分布式架构的企业而言,这不仅是工具链的补充,更是构建“远程即在场”DevOps文化的基石。尤其在混合办公常态化的今天,它让开发者能随时随地掌控服务状态,真正实现了“故障无边界”的运维愿景——无需现场救火,一切尽在指尖掌控。

前言

深夜收到紧急通知:“测试环境的核心服务又挂了!”——如果该服务部署在严格隔离的内网,这样的场景往往意味着开发者要在凌晨驱车赶往办公室。但借助cpolar 的内网穿透技术与IDEA的远程调试功能,这种低效模式已被彻底打破:即使身处千里之外,也能像操作本地项目一样完成JAR包异常分析。

常见困境与解决方案
  • 难题1:“黑盒”环境下的定位难
    当无法直接访问内网服务时,传统的日志查看或运维协助往往信息滞后。cpolar通过端口映射将调试通道“拉到身边”,让开发者能实时追踪变量值和堆栈轨迹。
  • 难题2:跨地域协作低效
    团队成员分散在不同城市?远程IDE连接+穿透隧道的组合,使多人协同诊断成为可能——资深工程师可通过共享会话指导新人快速上手复杂问题。
  • 难题3:安全合规与操作便捷性平衡
    cpolar支持按需创建/销毁通道,并提供访问权限控制(如IP白名单),既保障数据安全又避免长期暴露端口风险。
实际应用价值
  • 成本优化:减少差旅费用及人工等待时间;
  • 效率跃升:从发现故障到修复平均耗时缩短60%以上;
  • 知识沉淀:通过远程调试记录,形成标准化问题处理手册。

本文使用的示例项目已在GitHub开源,您可以直接获取完整代码进行学习和实践:

  • GitHub仓库:https://github.com/TanChengBin/springboot-debug-test
  • 项目特点:基于Spring Boot的远程调试测试项目,包含正常接口和异常接口,便于测试各种调试场景

1. Remote JVM Debug

Remote JVM Debug(远程JVM调试)是一种允许开发人员通过调试工具(如 IntelliJ IDEA)连接到运行在远程服务器上的Java应用程序并进行调试的技术。这个过程通常涉及通过网络连接到远程JVM实例,并允许开发者在不直接访问物理机器的情况下查看、修改代码状态,诊断和修复问题。

2. 系统要求与环境准备

2.1 服务器环境

  • 内网服务器操作系统:Windows 或 Linux。
  • JDK 版本:确保服务器上安装了正确版本的 JDK,支持远程调试。
  • cpolar 安装:需要在内网服务器上安装 cpolar 客户端,用于穿透远程登录、调试端口及HTTP请求。

2.2 本地开发环境

  • IDEA:本地开发机器需要安装 IntelliJ IDEA。
  • JDK:本地开发机器需要安装 JDK(版本与远程服务器相同)。

3. 内网服务器准备及开始

由于大部分项目基本部署在Linux服务器中,因为Linux的性能更优,占用更低。所以本文采用的模拟内网服务器为Linux的CentOS7系统。

3.1 安装cpolar配置支持远程ssh登录

此步骤需提前在内网服务器中操作,以支持在家远程登录公司测试环境中的内网服务器

3.1.1 什么是cpolar?
  • cpolar 是一款内网穿透工具,可以将你在局域网内运行的服务(如本地 Web 服务器、SSH、远程桌面等)通过一条安全加密的中间隧道映射至公网,让外部设备无需配置路由器即可访问。
  • 广泛支持 Windows、macOS、Linux、树莓派、群晖 NAS 等平台,并提供一键安装脚本方便部署。
3.1.2 安装cpolar

首先,我们需要先安装curl:

sudo yum install curl

接下来下载cpolar,一条命令完成安装

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

image-20250731104103027

测试 cpolar版本以确保安装

cploar version

image-20250731104439284

3.1.3 注册及配置cpolar系统服务

官网地址:https://www.cpolar.com

进入cpolar官网,点击免费注册按钮进行注册一个账号

image-20250731105101940

向系统添加及启动cpolar服务

#添加cpolar服务
sudo systemctl enable cpolar#启动cpolar服务
sudo systemctl start cpolar

image-20250731113335779

查看服务状态

sudo systemctl status cpolar

image-20250731113641757

3.1.4 登录cpolar web ui 管理界面配置ssh端口穿透
3.1.4.1 放行9200端口

在访问web页面前,需要先检查系统防火墙是否放行9200端口,避免访问不了

systemctl status firewalld

image-20250731114230860

有两种方式可以实现访问,一种是放行该端口,另一种是直接关闭防火墙(不建议)

#放行 9200 端口  
#--zone=public:使用默认区域(通常是 public)
#--add-port=9200/tcp:添加 TCP 协议的 9200 端口
#--permanent:永久生效(不加此参数则是临时规则,重启失效)
firewall-cmd --zone=public --add-port=9200/tcp --permanent#重载防火墙配置(及刷新配置使其生效)
firewall-cmd --reload

image-20250731114753297

验证端口是否已放行

firewall-cmd --zone=public --query-port=9200/tcp

image-20250731114856489

输出内容为yes则成功放行

3.1.4.2 访问cpolar web ui管理界面

在访问之前,不确定ip地址可以通过ifconfig命令查看服务器ip

ifconfig

image-20250731115241198

确定好ip地址后,在浏览器中访问:

http://<此处应为您的IP>:9200  #如:http://192.168.184.133:9200

image-20250731115551451

将前面步骤注册好的cpolar账号登录即可进入后台页面

image-20250731115828304

登录成功同时,服务器也会后台无感自动配置token,无需手动配置token

配置文件位置:/usr/local/etc/cpolar/cpolar.yml

cat /usr/local/etc/cpolar/cpolar.yml

image-20250731120348419

3.1.4.3 保留固定TCP公网地址

使用cpolar为其配置TCP地址,该地址为固定地址,不会随机变化,方便后续ssh远程登录。

进入官网的预留页面:https://dashboard.cpolar.com/reserved

image-20250731134024714

列表中显示了一条已保留的TCP地址记录:

  • 地区:显示为China Top
  • 地址:显示为16.tcp.cpolar.top:14290

注:地址每个账号的都不同,请以自己保留生成的为主

3.1.4.4 启用ssh隧道,配置固定tcp地址

点击左侧菜单栏的隧道管理,展开进入隧道列表页面,页面下默认会有 2 个隧道:

  • ssh隧道,指向22端口,tcp协议
  • website隧道,指向8080端口,http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)

image-20250731121517683

接着点击ssh隧道的编辑按钮,进入编辑页面,修改成固定tcp地址,如图所示:

image-20250731134321846

3.1.4.5 使用固定的tcp地址进行远程ssh登录

ssh远程工具可以使用MobaXtermXshell或者FinalShell都可以,这里采用FinalShell进行远程登录演示

image-20250731135717956

接下来,双击创建的ssh连接,如出现提示,点击接受并保存即可,即可连接到内网服务器

image-20250731140155208

3.2 安装JDK

本文采用jdk17作为演示

#下载jdk17软件包
wget https://download.oracle.com/java/17/archive/jdk-17_linux-x64_bin.rpm#安装jdk17
sudo rpm -ivh jdk-17_linux-x64_bin.rpm

image-20250731140803238

安装完成后,查看版本,确认安装

java -version

image-20250731141004010

3.3 上传打包好的Jar文件至服务器

该项目为简单模拟测试调试使用项目,共写3个简单接口:

  • 🟢正常接口:/api/normal/info:获取应用程序的基本信息,包括名称、版本、作者等
  • 🔴异常接口:/api/bug/null-pointer:故意抛出NullPointerException,用于调试异常处理
  • 🟡阻塞接口:/api/bug/infinite-loop:进入无限循环,模拟线程阻塞场景
3.3.1 打包springboot项目

idea中侧边栏选择Maven选项,然后如图操作进行构建打包jar文件:image-20250731142117659

3.3.2 上传至服务器

依次步骤打开找到jar文件springboot-debug-test-1.0.0.jar

image-20250731143204600

将jar文件直接拖动至finalshell空白处即可上传

注意:一定要使用 root 用户登录,否则上传可能失败(或者确保当前用户对目标目录具有写权限)。

如果使用普通用户登录 FinalShell,可通过 chmodchown 命令赋予目标目录写权限。

image-20250731143923122

4. 启动 JAR 文件并配置远程调试

4.1 启动 JAR 文件

使用 java -jar 命令启动你需要调试的 JAR 文件,并开启远程调试。需要在启动命令中指定 JVM 调试参数:

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 springboot-debug-test-1.0.0.jar

5005 为远程调试的端口号。

springboot-debug-test-1.0.0.jar 是要调试的 JAR 文件名称。

image-20250731144930989

项目已经成功启动,端口5005被监听,后台该jar文件项目在端口8080(http)上运行。

4.2 cpolar隧道配置

4.2.1 http(8080端口)穿透

访问cpolar web ui管理界面(忘记可看前面3.1.4.2小节),进入到隧道列表,名称为website的隧道,点击编辑,可以看到如下信息:

  • 隧道名称:website
  • 协议:http
  • 本地地址:8080

这些信息正是后台项目8080端口所需要的,所以不需要进行修改,默认创建好的隧道直接可以使用。

image-20250731152809974

接着左侧菜单栏选择【状态】>【在线隧道列表】,可以看到website隧道有两个公网地址,http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)

image-20250731153147189

直接选择一个至浏览器测试,这里选择http(注:每个用户的公网地址都不相同)

由于后台项目提到的接口地址后缀为/api/normal/info,所以正确拼接地址应为:

<您的公网地址>/api/normal/info   #如:http://5c19bf20.r1.cpolar.top/api/normal/info

image-20250731153501370

接口正常返回了api接口信息,穿透成功!

4.2.2 调试端口(5005端口)穿透
4.2.2.1 保留固定tcp地址

选择将5005端口穿透设置为固定的tcp地址是为了方便后续多次调试,tcp地址不会进行变化,也可以不进行此步骤操作。

进入官网的预留页面:https://dashboard.cpolar.com/reserved

  • 地区当前选择的是:China Top
  • 地址信息为:3.tcp.cpolar.top:12718

记住新创建的地址信息(注意:每个用户创建的地址信息都有所不同,请注意个人的地址信息

image-20250731154744284

4.2.2.2 创建新隧道

进入创建隧道列表,填写好对应信息,如下图:

  • 协议:tcp
  • 本地地址为:5005
  • 端口类型:固定tcp端口
  • 预留tcp地址:填写您预留固定的tcp地址

image-20250731155540322

5.IDEA远程Debug调试内网项目

5.1 idea配置remote jvm debug

点击启动按钮左边的选项卡,然后在选项卡中点击Edit Configurations进入Run/Debug Configurations页面

image-20250731161024435

依次点击左上角【+】号按钮,下滑选择【Remote JVM Debug】选项,点击进入。

image-20250731161426748

填写主机以及端口信息,具体参考如下图:

  • Name:自定义名字(如:Remote Debug)
  • Host:填写固定的tcp地址去除端口部分(如:3.tcp.cpolar.top)
  • Port:填写固定的tcp地址端口部分(如:12718)

image-20250731162258621

5.2 启动及调试

点击右上角的小虫子图标即可启动调试,启动调试后,控制台会出现类似Connected to the target VM, address: '3.tcp.cpolar.top:12718', transport: 'socket'的信息,即代表启动成功

image-20250731163133444

来到BugController控制器,里面有一个异常接口api/bug/null-pointer,代码如下:

    /*** 空指针异常接口* * 该接口会故意抛出NullPointerException* 用于测试空指针异常的调试场景* * @return 永远不会执行到这里,因为会抛出异常*/@GetMapping("/null-pointer")public String nullPointerException() {//1.此位置故意设置nullString字符串为nullString nullString = null;String now = LocalDateTime.now().format(FORMATTER);System.out.println("空指针异常接口被调用,准备抛出异常,时间:" + now);//2.待接口返回时执行nullString的toString方法时就会抛出NullPointerException异常return nullString.toString();}

切换到浏览器,然后请求8080端口的穿透地址+异常接口地址进行请求,如:

<您的8080端口穿透地址>/api/bug/null-pointer  #如:http://5c19bf20.r1.cpolar.top/api/bug/null-pointer

image-20250731164414958

接着在String nullString = null;代码段左边打上断点调试,如下图:

image-20250731163940881

再次请求一次该链接http://5c19bf20.r1.cpolar.top/api/bug/null-pointer进行发送http请求,可以看到后端idea中已经进去断点调试了

image-20250731164557670

进入下一步骤,查看到nullString变量值确实为null

image-20250731164837509

多跳几个步骤,进入源码后可以确认已抛出空指针异常,提示 nullString 为 null,无法调用其方法。
image-20250731165856012

在finalShell终端1界面中也可以看到,控制台输出的日志出现了NullPointerException异常

image-20250731170058315

通过以上的配置,这样您就可以在家中或者外出无法及时回到公司时,也能很轻松的调试公司中内网服务器里部署的测试环境项目啦!

6.可能出现的问题

6.1 访问页面出现404的情况是怎么回事?

访问出现404:
image-20250731170927056

可以发现,接口路径中少了全局上下文路径/api ,补上就可以访问啦!

image-20250731171113996

7.总结

通过本教程,我们成功实现了使用 Cpolar 结合 Remote JVM Debug 技术,在本地 IDE 环境中调试部署在公司内网中的 Java 服务。整体流程包括:

  • 安装并配置 Cpolar,打通从公网访问内网的通道;
  • 启用 JVM 的远程调试模式,开放调试端口;
  • 使用 IntelliJ IDEA 配置 Debug 远程连接;
  • 最终实现对远程服务的断点调试与问题排查。

本方案适用于以下典型场景:

  • 公司测试环境无法直接从公网访问;
  • 无法通过 VPN 连通或 VPN 配置复杂;
  • 出现远程服务异常但又难以复现时,进行现场调试。

在实际使用中应注意:

  • 远程调试存在安全风险,建议仅限于测试环境,并设置好访问权限;
  • cpolar 每次生成的公网地址可能会变化,建议使用固定子域名(需高级用户)
  • 远程调试应避免在生产环境开启,以免暴露调试端口。

通过这种方式,极大提升了远程问题定位效率,也为远程办公/故障应急提供了可靠手段。


项目源码

本文中使用的示例项目已开源,欢迎访问GitHub仓库获取完整代码:

👉 https://github.com/TanChengBin/springboot-debug-test

如果您觉得这个项目对您有帮助,欢迎给项目点个Star⭐️支持!

cpolar 与IDEA的远程JVM调试技术组合,本质是为内网服务打造了一座“数字桥”。它解决了传统运维场景中最核心的矛盾——物理隔离与实时响应、人工成本与效率提升。无论是深夜救场的核心故障,还是日常代码逻辑验证,这种方案都展现了极高的实用性。对于依赖分布式架构的企业而言,这不仅是工具链的补充,更是构建“远程即在场”DevOps文化的基石。尤其在混合办公常态化的今天,它让开发者能随时随地掌控服务状态,真正实现了“故障无边界”的运维愿景——无需现场救火,一切尽在指尖掌控。

以上就是如何在本地使用Remote JVM Debug 进行内网服务器调试,并安装cpolar内网穿透工具配置固定不变的TCP公网地址,实现随时随地远程访问的全过程,感谢您的观看,有任何问题欢迎留言交流。

cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/93069.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/93069.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/93069.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cherryusb UAC例程对接STM32内置ADC和PWM播放音乐和录音(下)=>UAC+STM32 ADC+PWM实现录音和播放

1. 程序基本框架整个程序框架, 与之前的一篇文章《Cherryusb UAC例程对接STM32内置ADC和DAC播放音乐和录音(中)>UACSTM32 ADCDAC实现录音和播放》基本一致, 只是这次将DAC替换成了PWM。因此这里不再赘述了。 2. audio_v1_mic_speaker_multichan_template.c的修改说明(略) 参…

1 JQ6500语音播报模块详解(STM32)

系列文章目录 文章目录系列文章目录前言1 JQ6500简介2 基本参数说明2.1 硬件参数2.2 模块管脚说明3 控制方式3.1 通信格式3.2 通信指令4 硬件设计5 软件设计5.1 main.c5.2 board_config5.2.1board_config.h5.2.2 board_config.c5.3 module_config5.3.1 module_config.h5.3.2 mo…

常用数据分析工具

Tableau丨Power BI丨FineBI丨SQL丨影刀丨Excel丨Python丨 参考视频&#xff1a;【戴师兄】数据分析有哪些必学工具&#xff1f;2023最新版&#xff01;Tableau丨Power BI丨FineBI丨SQL丨影刀丨Excel丨Python丨课程教程自学攻略_哔哩哔哩_bilibili 文档资料&#xff1a; 【戴师兄…

OBOO鸥柏丨智能会议平板教学查询一体机交互式触摸终端招标投标核心标底参数要求

整机参数要求&#xff1a;55寸/65寸/75寸/85-86寸/98寸/100寸/110寸/115寸智能会议平板教学触控一体机/智慧黑板触摸屏招标投标核心标底参数要求1、整机屏幕采用≥采用超高清原厂原包原装工业LCD液晶屏面板&#xff1b;具有高色域&#xff0c;显示动态视频、web及3D动画时&…

无人机在环保监测中的应用:低空经济发展的智能监测与高效治理

一、行业背景与技术革新 随着全球环境问题日益严峻&#xff0c;传统环保监测手段已难以满足现代环境管理的需求。固定监测站点建设成本高、覆盖范围有限&#xff0c;地面巡查效率低下且存在安全风险。在此背景下&#xff0c;无人机技术凭借其独特的空间优势和技术特性&#xff…

PO、BO、VO、DTO、POJO、DAO、DO基本概念

一、图解二、相关概念 1、PO&#xff08;Persistant Object - 持久化对象&#xff09; 核心定位&#xff1a; 直接与数据库表结构一一映射的对象&#xff0c;通常用于 ORM&#xff08;对象关系映射&#xff09;框架&#xff08;如 MyBatis、Hibernate&#xff09;中。 特点&…

todoList清单(HTML+CSS+JavaScript)

&#x1f30f;个人博客主页&#xff1a; 前言&#xff1a; 前段时间学习了JavaScript&#xff0c;然后写了一个todoList小项目&#xff0c;现在和大家分享一下我的清单以及如何实现的&#xff0c;希望对大家有所帮助 &#x1f525;&#x1f525;&#x1f525;文章专题&#xff…

Mac M1探索AnythingLLM+Ollama+知识库问答

AnythingLLM内置 RAG、AI Agent、可视化/无代码的 Agent 编排&#xff0c;支持多家模型与本地/云端向量库&#xff0c;并提供多用户与可嵌入的聊天组件&#xff0c;用来快速验证“知识 模型 工具”拼成的 AI 应用。 1 AnythingLLM、Ollama准备 1&#xff09;AnythingLLM 打…

【 Navicat Premium 17 完全图形化新手指南(从零开始)】

Navicat Premium 17 完全图形化新手指南&#xff08;从零开始&#xff09; 一、准备阶段&#xff1a;清理现有环境 1. 删除已创建的测试数据库&#xff08;如需重新开始&#xff09;打开Navicat Premium 17 双击桌面图标启动程序在左侧连接面板中找到你的MySQL连接&#xff08;…

Web学习笔记5

Javascript概述1、JS简介JS是运行在浏览器的脚本编程语言&#xff0c;最初用于Web表单的校验。现在的作用主要有三个&#xff1a;网页特效、表单验证、数据交互JS由三部分组成&#xff0c;分别是ECMAscript、DOM、BOM&#xff0c;其中ECMAscript规定了JS的基本语法和规则&#…

部署一个开源的证件照系统

以下数据来自官方网站,记录下来,方便自己 项目简介 &#x1f680; 谢谢你对我们的工作感兴趣。您可能还想查看我们在图像领域的其他成果&#xff0c;欢迎来信:zeyi.linswanhub.co. HivisionIDPhoto 旨在开发一种实用、系统性的证件照智能制作算法。 它利用一套完善的AI模型工作…

Linux客户端利用MinIO对服务器数据进行同步

接上篇 Windows客户端利用MinIO对服务器数据进行同步 本篇为Linux下 操作&#xff0c;先看下我本地的系统版本 所以我这里下载的话&#xff0c;是AMD64 文档在这 因为我这里只是需要用到客户端&#xff0c;获取数据而已&#xff0c;所以我只需要下载个MC工具用来数据获取就可以…

Docker 中部署 MySQL 5.7 并远程连接 Navicat 的完整指南

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

自己动手造个球平衡机器人

你是否曾对那些能够精妙地保持平衡的机器设备感到好奇&#xff1f; 从无人机到独轮平衡车&#xff0c;背后都蕴藏着复杂的控制系统。 今天&#xff0c;我们来介绍一个充满挑战与乐趣的项目——制作一个球平衡机器人。这不仅是一个酷炫的摆件&#xff0c;更是一次深入学习机器…

21.Linux HTTPS服务

Linux : HTTPS服务协议传输方式端口安全性HTTP明文传输80无加密&#xff0c;可被窃听HTTPS加密传输443HTTP SSL/TLS 数据加密&#xff08;防窃听&#xff09;身份认证&#xff08;防伪装&#xff09;完整性校验&#xff08;防篡改&#xff09;OpenSSL 证书操作核心命令命令选项…

SqlSugar 跨方法 操作临时表

.net项目中时长会有用到临时表的操作结果如下所示但是在SqlSugar中可能因为会话问题导致临时表访问受限 搜索到的方式var conn (SqlConnection)sugarClient.Ado.Connection;if (conn.State ! System.Data.ConnectionState.Open) {conn.Open();}using (var cmd new SqlCommand…

怎么用飞算javaAI实现视频逐帧截图并保存

相信很多朋友都遇到过这样的需求&#xff1a;想从视频中截取特定帧作为素材&#xff0c;却苦于没有简单易用的工具&#xff0c;要么操作复杂难以精准定位&#xff0c;要么导出的图片质量不佳。市面上的视频处理软件要么功能冗余&#xff0c;要么需要付费才能使用逐帧截取功能&a…

【2】Transformers快速入门:统计语言模型是啥?

一句话看懂统计语言模型核心任务&#xff1a;教电脑判断一句话 “像不像人话” &#xff08;比如“我爱吃苹果”✅ vs “苹果吃爱我”❌&#xff09;1. 早期&#xff1a;死磕语法规则 → 失败&#xff01; 科学家思路&#xff08;1970年前&#xff09;&#xff1a; 像语文老师一…

[激光原理与应用-230]:物理学主要分支、研究对象、衍生技术及职业方向解析

物理学作为自然科学的核心学科&#xff0c;其分支体系覆盖从微观粒子到宏观宇宙的广阔领域&#xff0c;并通过交叉融合衍生出众多前沿技术。以下从经典与现代物理学分支、交叉学科、技术转化及职业方向四个维度展开分析&#xff1a;一、经典物理学分支&#xff1a;宏观世界的基…

北京JAVA基础面试30天打卡08

RocketMQ、RabbitMQ与Kafka对比及常见问题解决方案 一、概述 消息队列&#xff08;Message Queue, MQ&#xff09;是企业IT系统内部通信的核心手段&#xff0c;用于提升性能、实现系统解耦和流量削峰。它具有低耦合、可靠投递、广播、流量控制、最终一致性等功能&#xff0c;是…