Java开发
文章平均质量分 94
欢迎来到Java开发专栏!在这个专栏中,我们将一起探索Java的世界,学习如何使用Java进行开发,并掌握一些常见的开发技巧和最佳实践。在这个专栏中,我们将不仅仅局限于理论知识的传授,还会通过一些实际案例和示例代码演示,帮助大家更好地理解和应用所学内容。
HelloDam
CSDN“博客专家”、阿里云“专家博主”、支付宝“社区优秀博主”。机械工程在读研究生,研究方向为工业智能优化算法和智能制造系统设计与开发。有丰富的项目开发经验,有一定创新能力,求学期间授权发明专利10件、软著5件、获得多个国家级、省级竞赛奖项,获研究生国家奖学金。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Http 申请 SSL 证书升级 Https 手把手教程
本文介绍了在腾讯云申请SSL证书并配置HTTPS的全流程。首先在腾讯云SSL证书控制台申请免费证书,填写域名后添加解析记录完成验证。之后分别配置SpringBoot后端和前端:后端下载JKS证书文件放入resources目录,修改网关配置;前端在宝塔面板中上传Nginx版证书文件,配置SSL并重启服务。最后需将前后端通信协议统一改为HTTPS。整个流程涵盖证书申请、验证到部署的全过程,实现网站HTTPS加密访问。原创 2025-06-08 11:01:08 · 634 阅读 · 0 评论 -
场馆订 场馆预订平台 数据库设计
本文档详细介绍了为一个体育场馆预订系统设计的数据库表结构,涵盖了用户信息、场馆详情、订单处理及支付等多个方面。核心表包括用户表(`user`)、场馆表(`venue`)、订单表(`time_period_order`)等,特别强调了通过位运算优化场地预订管理的策略。此外,还设计了评价、支付、操作日志等相关表来支持系统的完整功能,旨在实现一个高效、易于管理的在线预订平台。整个设计注重数据关系的合理性和操作的便捷性,以适应不同用户的需求。原创 2025-05-11 21:46:39 · 994 阅读 · 0 评论 -
场快订场馆预定平台开源说明
随着人们生活水平的提高和对健康、娱乐需求的增长,各类体育运动、文化活动等越来越受到大众的喜爱。然而,在组织这些活动时,找到合适的场地往往成为了一个难题。尤其是在城市中,公共资源有限,而需求量大,这导致了场地资源的紧张。此外,传统的场地预定方式效率低下,通常需要通过电话或者亲自前往场地进行咨询和预订,这种方式不仅耗时费力,而且信息更新不及时,容易造成资源浪费。因此开发一个高效、便捷的场馆在线预订平台至关重要,该平台可以帮助提高场馆使用率,降低预约冲突,优化广大用户的预订体验。原创 2025-05-08 19:42:19 · 2023 阅读 · 6 评论 -
预订接口 V2 优化:使用本地消息表保证订单生成、库存扣减的一致性
本文介绍了一种优化预订接口的方法,通过引入本地消息表解决分布式事务中的最终一致性问题。原先的实现是在一个事务中同时扣减库存和创建订单,容易因网络不稳定导致数据不一致。改进后的方法将业务操作和消息发送封装在本地事务中,并利用MQ进行异步解耦,确保了即使在网络故障时也能保证系统的数据一致性。此外,还设计了定时任务重试机制以及幂等性保障措施来进一步确保消息被成功处理,从而实现了高效可靠的分布式事务处理。原创 2025-05-02 22:28:31 · 1002 阅读 · 0 评论 -
leetcode142.环形链表II 超直观的理解思路,还看不懂你打我
本文详细解析了LeetCode链表环问题“环形链表II”的解决方案。通过快慢指针法,介绍了如何判断链表是否存在环以及如何找到环的入口节点。核心思想是利用速度差使快指针追上慢指针以确定环的存在,并通过数学推导证明了从头节点和相遇点同时出发的两个指针必将在环入口相遇。文章还提供了Java代码实现及复杂度分析,时间复杂度为O(n),空间复杂度为O(1)。原创 2025-02-23 12:26:34 · 1229 阅读 · 2 评论 -
一文带你入门位运算
本文介绍了位运算的基础概念及其应用。位运算是直接对二进制位进行操作的高效运算方式,包括按位与(&)、或(|)、异或(^)、取反(~)、左移(<<)和右移(>>)。文章通过具体例子说明了位运算在判断奇偶、状态标记、数据压缩、快速计算以及找唯一数等场景中的实际用途。例如,利用位运算可以实现无需临时变量的数值交换,或者将多个小数字打包存储以节省空间。这些技巧不仅提升了程序性能,还在低级操作中发挥了重要作用。原创 2025-02-12 15:04:04 · 1537 阅读 · 0 评论 -
基于 Redis GEO 实现条件分页查询用户附近的场馆列表
本文档详细介绍了如何使用Redis GEO模块实现场馆位置的存储与查询,以支持“附近场馆”搜索功能。首先,通过微信小程序获取用户当前位置,并将该位置信息与场馆的经纬度数据一同存储至Redis中。利用Redis GEO高效的地理空间索引能力,文档展示了如何初始化缓存、批量处理和存储场馆位置信息,以及执行基于距离和多种条件的分页查询。此外,还提供了计算两个地理位置间距离的工具类。此方案适用于开发具备地理定位功能的应用程序,如体育场馆预订系统。原创 2025-01-30 16:44:23 · 1521 阅读 · 0 评论 -
接口 V2 完善:分布式环境下的 WebSocket 实现与 Token 校验
本文介绍了如何使用WebSocket优化客户端与服务端之间的通信,特别是在处理异步订单创建通知的场景中。通过引入WebSocket代替传统的HTTP请求-响应模式,实现了服务器主动向客户端推送数据的功能。文中首先概述了WebSocket的优势,随后深入探讨了其在分布式系统中的具体实现。特别地,针对分布式架构下WebSocket连接状态同步问题,提出了一种基于消息队列广播机制的解决方案。同时,还强调了心跳检测机制的重要性,以维护连接的有效性。原创 2025-01-24 19:51:27 · 2280 阅读 · 0 评论 -
Git 小白入门教程
这篇文章详细介绍了版本控制的重要性,特别是通过Git实现的分布式版本控制相对于SVN集中式控制的优势。文章首先解释了版本控制的基本概念,强调了在文档或项目多版本迭代中备份与恢复任意版本的能力。接着,重点阐述了Git的历史背景、安装及配置方法,以及其基本理论和工作流程。文中还具体描述了如何使用Git进行项目的创建、克隆,日常操作命令,文件状态切换,.gitignore的使用规则,还有Gitee平台上的操作方式和Git分支管理等内容。旨在为读者提供从入门到实践的全面指南。原创 2025-01-22 19:34:15 · 1472 阅读 · 0 评论 -
接口 V2 完善:基于责任链模式、Canal 监听 Binlog 实现数据库、缓存的库存最终一致性
本文介绍了一种使用Canal监听MySQL Binlog实现数据库与缓存最终一致性的方案。文章首先讲解了如何修改Canal配置以适应订单表和时间段表的变化,然后详细描述了通过责任链模式优化消息处理逻辑的方法,确保能够灵活应对不同数据表的更新需求。最后,展示了如何利用RocketMQ消费Canal消息并通过责任链处理器同步更新缓存,从而保证数据的一致性。此方法有效提升了系统的可扩展性和维护效率。原创 2025-01-22 18:11:30 · 1787 阅读 · 0 评论 -
场馆预定平台高并发时间段预定实现V2
本文档介绍了场馆预订系统接口V2的设计与实现,旨在解决V1版本中库存数据不一致及性能瓶颈的问题。通过引入令牌机制确保缓存和数据库库存的最终一致性,避免因服务器故障导致的库存错误占用问题。同时,采用消息队列异步处理库存扣减和订单创建,显著提升了接口的吞吐量和响应速度。测试结果显示,新版接口在高并发场景下表现优异,平均响应时间为1801毫秒,吞吐量达到了每秒1045.8次请求,异常率仅为0.22%,极大改善了用户体验。原创 2025-01-21 12:03:43 · 1400 阅读 · 1 评论 -
Jmeter 动态参数压力测试时间段预定接口
本文档详细介绍了如何使用ApacheJMeter进行压力测试,以评估预定接口在高并发场景下的性能表现。通过创建线程组模拟不同数量的用户并发请求,利用CSV文件动态配置时间段ID和用户token,确保了测试数据的真实性和有效性。文档中还展示了如何设置JMeter的各项参数、添加HTTP请求头、查看结果树和聚合报告等操作步骤。最终,通过一次针对4000用户并发的压测实例,分析了样本数、响应时间、异常率及吞吐量等关键指标,验证了系统的稳定性和可靠性。原创 2025-01-19 21:07:27 · 1733 阅读 · 0 评论 -
《代码随想录》单调栈:高性能Java实现与详细图解
本文深入探讨了单调栈在解决多种算法问题中的应用,包括“每日温度”、“下一个更大元素”系列以及“接雨水”等问题。通过详细分析基础实现与优化策略,展示了如何利用单调栈有效地寻找数组中任一元素左右第一个大于或小于它的元素位置,从而提高算法效率。文中不仅提供了详尽的Java代码示例,还对比了不同方法之间的差异和优势,旨在帮助读者掌握单调栈的核心思想,并能灵活应用于实际编程挑战中。此外,文章也介绍了双指针等替代方案,为解决问题提供了多角度思考路径。原创 2025-01-13 22:23:22 · 1110 阅读 · 0 评论 -
基于 FastExcel 与消息队列高效生成及导入机构用户数据
本文档详细介绍了开发机构用户数据导入功能的必要性及实现方法,如针对教育机构如学校场景下提高用户体验和管理效率的需求。文中首先分析了直接对接学生管理系统与平台对接的优势,包括减少人工审核成本、提高身份验证准确性等。接着介绍了FastExcel作为处理Excel文件的高效工具及其在用户数据导入导出中的应用,并展示了如何利用JavaFaker生成测试数据,以及通过消息队列异步处理Excel数据导入以保证效率和稳定性。最后,提供了SQL批量插入语句示例,用于处理用户数据的高效入库。原创 2025-01-13 22:09:02 · 1885 阅读 · 0 评论 -
分布式环境下定时任务扫描时间段模板创建可预订时间段
本文详细介绍了场馆预定系统中时间段生成的实现方案。通过设计场馆表、时间段模板表和时间段表,系统能够根据场馆的提前预定天数生成未来可预定的时间段。为了确保任务执行的唯一性和高效性,系统采用分布式锁机制和定时任务,避免重复生成时间段。通过流式查询优化大数据处理,减少内存占用和网络延迟。同时,使用唯一复合索引保证时间段生成的幂等性,避免重复插入。为提高系统性能,引入二级缓存和Redis管道技术,加速数据查询和缓存预热,确保用户在预定时间段时获得快速响应。整体方案兼顾了系统的稳定性、高效性和可扩展性。原创 2025-01-06 16:19:12 · 1673 阅读 · 0 评论 -
场馆预定平台高并发时间段预定实现V1
本文介绍了一个高效处理高并发场馆预订请求的系统设计方案。通过使用Redis缓存和位图技术,系统能够快速管理场地的可用性和预订状态。采用Lua脚本确保操作的原子性,结合责任链模式进行参数校验,并通过事务保证数据一致性。系统还实现了订单生成、延时关闭订单等功能,确保资源的公平分配和高效利用。整体设计旨在提供稳定、高性能的预订接口,满足高并发场景下的用户需求。原创 2025-01-05 20:19:01 · 2473 阅读 · 4 评论 -
支付宝沙箱指南:如何实现手机网站支付
本文详细介绍了支付宝沙箱支付的使用方法,包括支付、退款和交易查询的完整流程。通过沙箱环境,开发者可以模拟真实支付场景,无需使用真实资金。文章提供了Java代码示例,展示了如何发起支付、处理回调、进行退款以及查询交易状态。此外,还探讨了支付过程中可能遇到的问题及解决方案,如订单超时处理和内网穿透技术的应用,帮助开发者更好地理解和集成支付宝支付功能。原创 2025-01-05 17:08:33 · 1658 阅读 · 3 评论 -
腾讯云域名购买、备案、解析:一步到位的实操手册
本文档简要介绍了在腾讯云平台购买域名、完成网站备案及配置域名解析的流程。首先,用户需搜索并注册心仪的域名,创建并通过审核信息模板后完成购买。接着,针对个人用户,文档指导如何启动和完成工信部要求的网站备案程序,包括填写网站信息、签署文件以及通过电话和短信验证。最后,文章讲解了如何设置域名解析,使域名能够指向正确的服务器IP地址,并提及子域名的添加方法,确保网站可以通过易记的域名访问,同时满足中国大陆法律对网站悬挂备案号的要求。原创 2025-01-03 20:42:49 · 4413 阅读 · 0 评论 -
面向微服务的 Spring Cloud Gateway 的集成解决方案:用户登录认证与访问控制
描述了基于Spring Cloud Gateway的微服务网关及Admin服务的实现。网关通过定义路由规则,利用负载均衡将请求转发至不同的后端服务,并集成了Token验证过滤器以确保API的安全访问,同时支持白名单路径免验证。Admin服务负责用户管理,包括注册、登录、登出等功能,采用布隆过滤器优化用户名存在性检查,使用Redis存储会话信息并结合JWT进行身份验证。此外,文档还介绍了ShardingSphere的数据分片与加密配置,以及用户上下文在请求链路中的传递机制,确保了跨服务调用时用户信息的一致性原创 2024-12-22 14:58:27 · 1812 阅读 · 0 评论 -
整合 Knife4j 于 Spring Cloud 网关:实现跨服务的 API 文档统一展示
本文档概述了构建和配置基于JDK 17、Spring Boot 3.0.7及Spring Cloud 2022.0.3的微服务系统,特别聚焦于集成Knife4j以增强API文档管理和接口测试功能。文中详细介绍了如何在Spring Boot应用中添加Knife4j依赖、配置Swagger UI路径和API分组,以及使用注解为接口添加描述信息。此外,文档还讲解了通过Spring Cloud Gateway聚合多个微服务的API文档的方法,并说明了如何设置白名单和基本认证来保护API文档访问。原创 2024-12-20 22:52:31 · 2530 阅读 · 0 评论 -
基于 mzt-biz-log 实现接口调用日志记录
`mzt-biz-log` 是一个用于记录操作日志的通用组件,旨在追踪系统中“谁”在“何时”对“何事”执行了“何种操作”。该组件通过简单的注解配置,如 `@LogRecord`,即可实现接口调用的日志记录,支持成功与失败场景下的差异化日志描述。它还提供了丰富的功能,包括但不限于租户隔离、日志子类型划分、条件性日志记录以及枚举值解析等。此外,`mzt-biz-log` 支持自定义日志存储逻辑,允许开发者根据业务需求将日志持久化到数据库或其他存储媒介。整体设计简洁高效,适用于微服务架构中的日志管理需求。原创 2024-12-16 11:10:14 · 2346 阅读 · 1 评论 -
使用 Canal 监听 MySQL Binlog 日志实现最终一致性
本文档探讨了在分布式系统中处理超时未支付订单的挑战与解决方案。首先,分析了原始实现中使用`@Transactional`注解确保本地事务一致性的问题,在跨服务调用时可能导致的数据不一致。接着,提出了一种替代方案:通过开启MySQL的Binlog日志,利用Canal监听数据库变更,并异步发送消息至RocketMQ,实现了订单状态变更与库存恢复的最终一致性。该方案提高了系统的容错性、处理效率和稳定性,同时支持流量削峰和幂等性设计。文档还详细介绍了MySQL Binlog的配置、Canal中间件的部署与配置,以及原创 2024-12-15 10:56:26 · 2240 阅读 · 0 评论 -
《代码随想录》刷题笔记——二叉树篇【java实现】
录友刷《代码随想录》的做题记录原创 2024-11-30 09:38:49 · 972 阅读 · 0 评论 -
《代码随想录》刷题笔记——栈与队列篇【java实现】
录友刷《代码随想录》的做题记录原创 2024-11-29 22:23:33 · 981 阅读 · 0 评论 -
如何给GitHub的开源项目贡献PR
本文详细介绍了如何向开源项目“代码随想录”贡献自己的题解。首先,需要Fork原项目的仓库至个人GitHub账户,然后解决克隆仓库时可能遇到的SSH密钥问题。接着,按照标准流程对本地仓库进行代码或文档的修改,并提交至个人仓库。最后,通过创建Pull Request的方式向原项目发起合并请求,完成对开源项目的贡献。文中还提供了详细的命令示例和截图指导,帮助读者轻松上手。原创 2024-11-29 21:34:14 · 1051 阅读 · 0 评论 -
基于 Spring Boot 实现图片的服务器本地存储及前端回显
本文探讨了在网站开发中图片存储的各种方法,包括本地文件系统存储、对象存储服务(如阿里云OSS)、数据库存储、分布式文件系统及内容分发网络(CDN)。文中详细对比了这些方法的优缺点,并针对不同规模的应用推荐了相应的存储策略。此外,还提供了一个基于SpringBoot框架实现服务器本地图片存储与回显的具体示例,涵盖了从图片上传到通过网关服务安全访问图片的全过程。原创 2024-11-26 14:17:58 · 4052 阅读 · 0 评论 -
Java 代码编辑器 IDEA 使用技巧(涵盖快捷键、插件、推荐设置)
介绍IDEA的使用技巧,如快捷键,好用插件,其他设置原创 2024-11-06 23:22:11 · 1193 阅读 · 0 评论 -
【若依管理系统】前后端分离单机版开发必备小技巧
该文主要总结本人在使用若依管理系统时的开发小技巧,涵盖前后端。例如如何写单元测试,如何使用分页查询,如何设置日志等级,如何替换系统图标……原创 2024-11-01 20:56:16 · 1557 阅读 · 0 评论 -
【RocketMQ】秒杀设计与实现
本文档详细探讨了高并发场景下的秒杀系统设计与优化策略,特别是如何在短时间内处理大量请求。文档分析了系统性能指标如QPS(每秒查询率)和TPS(每秒事务数),并通过实例讲解了如何使用JMeter进行性能测试。此外,文档提供了技术选型指南,包括SpringBoot、Redis、RocketMQ等技术的应用,并给出了具体的用户量评估和服务器配置建议。最后,通过分析不同的库存扣减与订单创建实现方式,提出了使用Redis分布式锁等技术提高并发性能的方法。原创 2024-09-30 21:09:22 · 1221 阅读 · 0 评论 -
【RocketMQ】RocketMQ应用难点
本文探讨了RocketMQ中消息重复消费的问题及其解决方案,尤其是在CLUSTERING模式下的扩容影响。文章分析了重复消费的原因,如广播模式、负载均衡模式下的多consumerGroup消费、消费者组内的动态变化及网络延迟等,并提出了利用唯一标识进行去重的方法。此外,还讨论了如何选择合适的存储机制以高效处理大量消息标识,如HashMap、MySQL、Redis以及推荐的布隆过滤器等方案。对于防止消息堆积与确保消息不丢失,也给出了相应的策略和技术措施。原创 2024-09-30 20:09:33 · 1730 阅读 · 0 评论 -
【RocketMQ】SpringBoot整合RocketMQ
本文档详细介绍了如何在Spring Boot应用中集成Apache RocketMQ,并实现消息生产和消费功能。首先通过创建消息生产者项目,配置POM文件引入RocketMQ依赖,实现同步消息发送,并展示了如何发送普通字符串消息、对象消息以及集合消息。接着,文档讲解了如何搭建消息消费者项目,包括配置RocketMQ监听器以消费不同类型的RocketMQ消息。此外,还探讨了RocketMQ的不同消息类型如延迟消息、顺序消息的发送方式,以及消息消费模式的选择与实现(负载均衡模式与广播模式)。原创 2024-09-29 23:03:23 · 2404 阅读 · 10 评论 -
【RocketMQ】消费失败重试与死信消息
本文档详细介绍了RocketMQ中的重试机制与死信消息处理方法。对于生产者而言,文档提供了如何配置重试次数的具体示例;而对于消费者,它解释了默认情况下消息消费失败后的重试策略,并展示了如何通过代码自定义重试次数。当消息经过多次重试仍无法成功消费时,RocketMQ会将其标记为死信消息,并存入特定的死信队列中。文档还提供了处理死信队列的两种策略:一种是编写专门的消费者来处理这些消息,另一种是在达到一定重试次数后签收消息并通知人工干预。此外,还包括了关于死信消息生产和消费的基本示例代码。原创 2024-09-29 22:53:30 · 1884 阅读 · 0 评论 -
【RocketMQ】RocketMQ发送不同类型消息
本文介绍了RocketMQ消息队列系统中的几种消息发送模式及其应用场景,包括同步消息、异步消息以及事务消息。同步消息确保了消息的安全性,但牺牲了一定的性能;异步消息提高了响应速度,适用于对响应时间敏感的场景;事务消息则保证了消息与本地事务的一致性,适用于需要预执行业务逻辑以决定消息是否发送的场景。此外,文章还探讨了Topic与Tag的应用策略,以及如何利用自定义Key来方便消息的查询和去重,提供了丰富的代码示例帮助理解。原创 2024-09-28 22:22:59 · 1453 阅读 · 0 评论 -
【RocketMQ】RocketMQ快速入门
该文档介绍了Apache RocketMQ消息队列的基础应用,包括消息发送与接收的基本流程。首先通过创建生产者实例,并指定名称服务器地址,启动后即可发送消息至指定主题。然后创建消费者实例订阅相应主题,并设置监听器处理接收到的消息。文档中还提供了代码示例,展示了如何实现简单的生产和消费逻辑。此外,文档解释了消息队列在不同场景下的分发策略,如负载均衡与广播模式,并强调了队列数量与消费者数量之间的关系以确保消息的合理分配。原创 2024-09-28 22:05:04 · 2021 阅读 · 0 评论 -
【RocketMQ】RocketMQ安装
该文档记录了在Linux环境下使用Apache RocketMQ的安装与配置流程,包括下载RocketMQ压缩包、上传至服务器并解压、配置环境变量及对nameServer和broker的运行脚本和配置文件进行调整。文档还提供了使用Docker安装部署的方法,以及启动nameServer和broker容器的具体命令。此外,文档涉及了RocketMQ控制台的安装步骤,并对在使用过程中遇到的问题给出了相应的解决方案,如通过修改配置启用安全性和账号密码验证。原创 2024-09-28 21:37:03 · 3213 阅读 · 0 评论 -
【RocketMQ】MQ与RocketMQ介绍
本文介绍了消息队列(MQ)的基本概念及其在分布式系统中的作用,包括实现异步通信、削峰限流和应用解耦等方面的优势,并对ActiveMQ、RabbitMQ、RocketMQ及Kafka四种MQ产品进行了对比分析,涵盖了它们的开发语言、吞吐量、时效性和可用性等特点。此外,文章还特别介绍了RocketMQ,包括其架构设计、高可用性实现方式以及消费模式等内容,突出了RocketMQ在消息顺序消费、拉取模式、扩展性等方面的优势。原创 2024-09-28 21:16:57 · 1404 阅读 · 0 评论 -
【文件增量备份系统】MySQL百万量级数据量分页查询性能优化
本文针对大数据量下的分页查询性能问题进行了深入探讨与优化,最初查询耗时长达12秒,通过避免全表计数及利用缓存保存总数的方式显著提升了浅分页查询速度。面对深分页时依然存在的延迟,采用先查询倒数第N条记录ID,再依据此ID获取后继记录的策略,进一步降低了查询时间。此方案适用于优化大量数据背景下的分页展示性能问题。原创 2024-09-28 12:32:57 · 1815 阅读 · 0 评论 -
【智能排班系统】缓存组件封装
本文档阐述了缓存在提升软件性能与用户体验方面的关键作用,重点讨论了封装缓存组件的设计理念与实践。文档中详述了如何通过配置文件设定Redis缓存的基本属性,如超时时间和时间单位,并引入布隆过滤器来有效预防缓存穿透问题。同时,提供了多种安全获取与存储缓存的方法签名,旨在通过多层次的安全措施应对缓存穿透、击穿及雪崩等常见问题,确保系统的稳定运行。原创 2024-09-08 22:37:12 · 1671 阅读 · 0 评论 -
【智能排班系统】Hibernate Validator 参数校验
本文档介绍了参数校验的重要性及其在软件开发中的作用,强调了数据完整性、安全性、用户体验、系统稳定性及开发效率等方面的关键价值。文档详细阐述了Hibernate Validator这一流行的Java验证框架的使用方法,展示了如何利用其内置注解(如@NotNull、@Size、@Email等)来对输入数据进行有效性检查。此外,还探讨了自定义校验规则的开发方式,以及如何通过分组校验来适应不同的业务场景需求。通过集成Hibernate Validator,开发者可以显著提升应用程序的质量与用户体验。原创 2024-08-31 23:07:52 · 1669 阅读 · 0 评论 -
Java多进程调用 C++ 实现的 dll 程序和 exe 程序
本文介绍了使用Java调用本地DLL及EXE程序的方法。针对DLL调用,文章提供了基于JNA库的具体实现方案,包括定义Java接口以映射DLL中的函数,并展示了如何加载DLL及调用其中的方法。对于EXE程序的调用,则提出了一种通过批处理文件(BAT)启动外部可执行文件的方式,并通过轮询检查结果文件的存在来判断计算是否完成。此外,还探讨了使用ProcessBuilder启动独立进程来运行DLL调用程序DllRunner.jar,以及如何处理子进程的输入输出流以避免阻塞。原创 2024-08-31 22:53:04 · 1648 阅读 · 0 评论
分享