首页
关于这个博客
Search
1
Java 实现Google 账号单点登录(OAuth 2.0)全流程解析
231 阅读
2
Spring AI 无法获取大模型深度思考内容?解决方案来了
201 阅读
3
微信小程序实现页面返回前确认弹窗:兼容左上角返回与右滑返回
91 阅读
4
服务器遭遇 XMRig 挖矿程序入侵排查与清理全记录
66 阅读
5
解决 Mac 版 PicGo 无法打开问题:“已损坏,无法打开” 报错处理指南
37 阅读
Java 核心
框架与中间件
数据库技术
开发工具与效率
问题排查与踩坑记录
程序员成长与思考
前端
登录
Search
标签搜索
java虚拟机
JVM
保姆级教程
Java
Spring AI
SpringBoot
Nginx
WebFlux
Spring
cdn
https
dcdn
网站加速
Tool
图片导出
服务部署
源码解析
单点登录
google
sso
Luca Ju
累计撰写
35
篇文章
累计收到
1
条评论
首页
栏目
Java 核心
框架与中间件
数据库技术
开发工具与效率
问题排查与踩坑记录
程序员成长与思考
前端
页面
关于这个博客
搜索到
5
篇与
的结果
2025-08-15
解决 Mac 版 PicGo 无法打开问题:“已损坏,无法打开” 报错处理指南
作为一名经常需要处理图片上传的创作者或开发者,PicGo 这款图片管理工具无疑是提高效率的好帮手。它简洁的界面和便捷的图片上传功能,让我们能够轻松管理图片资源,无论是用于博客创作、文档编写还是日常工作,都能带来极大的便利。然而,在 Mac 电脑上安装好 PicGo 后,不少用户可能会遇到一个令人困扰的问题:双击运行 PicGo 时,系统会弹出报错窗口,提示 “PicGo.app” 已损坏,无法打开。你应该将它移到废纸篓,就像下图所示这样:这个问题并非是 PicGo 应用真的损坏了,而是 Mac 系统的安全机制在作祟。macOS 为了保护用户安全,会对从非 App Store 下载的应用进行严格的安全验证,当系统认为应用可能存在风险时,就会阻止其运行,从而出现上述报错。不过别担心,我们可以通过简单的操作来解决这个问题,让 PicGo 顺利运行。具体解决方案步骤一:打开终端在 Mac 电脑上,我们可以通过 Spotlight 搜索来快速打开终端。按下键盘上的Command + 空格组合键,调出 Spotlight 搜索框,然后输入 “终端” 并按下回车键,即可打开终端应用。步骤二:执行终端命令在打开的终端窗口中,输入以下命令:sudo xattr -d com.apple.quarantine "/Applications/PicGo.app"这里的sudo表示以管理员权限执行命令,xattr是用于操作文件扩展属性的命令,-d参数表示删除指定的扩展属性,com.apple.quarantine就是我们要删除的那个导致应用无法打开的扩展属性,而"/Applications/PicGo.app"则是 PicGo 应用在 Mac 上的安装路径。步骤三:输入密码并确认输入完上述命令后,按下回车键,终端会提示你输入密码。这里需要注意的是,在输入密码的过程中,终端不会显示任何字符,这是 Mac 系统的安全保护机制,你只需要正常输入你的电脑开机密码,然后按下回车键即可。输入密码并确认后,命令就会开始执行,执行完成后终端不会有特别的提示,就像下图这样:**步骤四:再次运行 PicGo完成以上操作后,回到 Applications(应用程序)文件夹,找到 PicGo 应用,双击它。这时候,你会发现 PicGo 能够正常打开了,再也不会出现之前的 “已损坏,无法打开” 报错了,就像下图所示:**注意事项确保 PicGo 应用的安装路径正确。上述命令中使用的是默认的安装路径/Applications/PicGo.app,如果你将 PicGo 安装在了其他路径下,需要将命令中的路径替换为实际的安装路径。输入密码时要仔细,确保输入正确。如果密码输入错误,终端会提示 “密码错误”,这时候你需要重新输入密码。执行命令时要保证网络连接正常,虽然这个操作本身不需要联网,但如果在操作过程中出现其他意外情况,联网状态可能有助于排查问题。总结通过以上几个简单的步骤,我们成功解决了 Mac 电脑上 PicGo 无法打开的问题。这个问题主要是由于 Mac 系统的安全机制导致的,并非应用本身真的损坏。只要我们按照上述方法,删除掉应用的 quarantine 扩展属性,就能让 PicGo 正常运行。希望这篇指南能够帮助到遇到同样问题的朋友,让大家能够顺利使用 PicGo 这款优秀的图片管理工具,提高工作和创作效率。
2025年08月15日
37 阅读
0 评论
1 点赞
2025-08-06
服务器遭遇 XMRig 挖矿程序入侵排查与清理全记录
一、异常察觉我的服务器配置本就不高,仅用于博客搭建,日常访问量也不大。但某天明显感觉服务器异常卡顿,通过 top 命令查看,发现 CPU 长期高负载,xmrig 进程疯狂占用资源,初步判断遭遇挖矿程序入侵。二、XMRig是什么 XMRig 是专为门罗币(XMR)设计的 高性能 CPU 挖矿软件 ,基于 cpuminer-m 开发,还优化了容器环境运行能力,会疯狂榨取系统资源挖取加密货币,属于典型的 “资源小偷”。三、挖矿进程追踪1、进程定位用 ps -ef | grep xmrig 命令一查,果然!xmrig 进程正以 root 高权限运行,肆无忌惮占用系统资源搞挖矿运算。2、自启动溯源1. 系统服务检查执行 systemctl list-unit-files --state=enabled 排查开机自启服务,未直接找到 xmrig 相关服务,但后续发现恶意创建的 c3pool_miner.service 服务,配置文件中明确 ExecStart=/usr/workspace/xmrig --config=/usr/workspace/config.json ,用于实现挖矿程序自启动。2. 定时任务挖掘检查 /etc/crontab 、 /etc/cron.d/ 等定时任务目录。发现/etc/cronta最后一项每分钟都执行的任务,比较可疑,删除掉3. 启动脚本排查查看 ~/.bashrc 、 /etc/rc.local 等文件,确认是否存在恶意启动 xmrig 命令,防止挖矿程序通过用户登录脚本或系统启动脚本自启。四、清理与修复过程1、紧急终止进程使用 sudo kill -9 <PID> ( <PID> 为 xmrig 进程 ID )强制终止挖矿进程,暂时缓解 CPU 高负载问题。2、删除恶意服务与程序文件1. 服务清理:对 c3pool_miner.service ,依次执行:sudo systemctl stop c3pool_miner.service # 停服务 sudo systemctl disable c3pool_miner.service # 禁用自启 sudo rm /etc/systemd/system/c3pool_miner.service # 删配置文件 sudo systemctl daemon-reload # 重载系统服务配置 2. 删光程序文件根据服务配置路径,找到 /usr/workspace/ 下的 xmrig 程序和 config.json ,执行:sudo rm -rf /usr/workspace/xmrig sudo rm -rf /usr/workspace/config.json 3、预防复发措施密码重置:改 root、sudo 用户及数据库密码,提升账号安全性,让攻击者 “进不来”。端口收紧:只开放必要端口(如 Web 服务的 80、443 ),用防火墙限制无关连接,减少入侵入口。系统更新:定期 sudo apt update、sudo apt upgrade ,及时打补丁、修漏洞,让系统 “无懈可击”。五、总结与反思这服务器遭遇 xmrig 挖矿程序入侵,暴露出系统安全防护存在不足。后续需加强服务器安全管理,定期进行安全检查与漏洞扫描,及时更新系统和软件,严格管控端口与服务,提升服务器整体安全性,避免再次遭受类似恶意程序攻击。
2025年08月06日
66 阅读
0 评论
1 点赞
2023-05-25
java使用POI导出Excel单元格为数字类型
第一版开发的时候,所有的单元格都是文本类型,由于需求方需要导出Excel可以直接使用函数计算,所以需要改动一下,将导出的Excel设置为数值类型。创建XSSFCellStyle// 此处设置数据格式 XSSFDataFormat df = wb.createDataFormat(); // 创建单元格样式 XSSFCellStyle numberStyle = wb.createCellStyle(); numberStyle.setFillForegroundColor((short) 1); //设置要添加表背景颜色 numberStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); //solid 填充 numberStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER); //文字水平居中 numberStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);//文字垂直居中 numberStyle.setBorderBottom(BorderStyle.THIN); //底边框加黑 numberStyle.setBorderLeft(BorderStyle.THIN); //左边框加黑 numberStyle.setBorderRight(BorderStyle.THIN); // 有边框加黑 numberStyle.setBorderTop(BorderStyle.THIN); //上边框加黑 // 注意#,##0.00_ 后面有一个空格 numberStyle.setDataFormat(df.getFormat("#,##0.00_ ")); //为单元格添加背景样式 sheet=setTitleStyle(sheet,rowNum,colNum,style1);创建单元格,并且设置XSSFCellStyle。private static XSSFSheet setTitleStyle(XSSFSheet sheet,int rowNum,int colNum,XSSFCellStyle style){ for (int i = 0; i < rowNum; i++) { //需要行表格 Row row = sheet.createRow(i); //创建行 row.setHeight((short)600); for (int j = 0; j < colNum; j++) {//需要列 row.createCell(j).setCellStyle(style); } } return sheet; }在为单元格赋值的时候,将数据转换为Double类型。
2023年05月25日
8 阅读
0 评论
0 点赞
2023-04-14
使用Apache POI 设置单元格中文字方向
前几天遇到了一个需求,需要使用Apache POI导出Excel,并且还需要实现单元格合并和文字竖向展示的功能。最终结果是这个样子介绍一下合并单元格和文字竖向展示的实现方法。1、合并单元格只要知道需要合并单元格的行号和列号就可以//创建工作簿 XSSFWorkbook workBook = new XSSFWorkbook(); //创建一个sheet XSSFSheet sheet = workBook.createSheet(); CellRangeAddress balanceCell = new CellRangeAddress(0, 4, 1, 1); sheet.addMergedRegion(balanceCell);2、文字竖向显示获取到需要竖向显示的单元格,然后设置单元格样式,设置Rotation属性 //创建工作簿 XSSFWorkbook workBook = new XSSFWorkbook(); //创建一个sheet XSSFSheet sheet = workBook.createSheet(); CellStyle directionStyle = workBook.createCellStyle(); directionStyle.setRotation((short)255); XSSFRow row = sheet.getRow(0); XSSFCell cell = row.getCell(4); cell.setCellStyle(directionStyle);
2023年04月14日
12 阅读
0 评论
0 点赞
2020-05-25
MyBatis分页助手报错java.util.ArrayList cannot be cast to com.github.pagehelper.Page
最近在使用MyBatis时遇到了这问题原本可以正常使用分页,但是当我添加了一个查询条件时突然报出了这个错误,后来终于找到了原因。因为PageHelper.startPage(pageNum,pageSize)方法 只会对靠近的第一个查询语句进行分页。结果我新添加的查询条件又进行了一个select查询,所以会产生这个错误如:PageHelper.startPage(pageNum, pageSize, true);XXXMapper.xxxxPage<> page= (Page<>)TestMapper.query( );改为:XXXMapper.xxxxPageHelper.startPage(pageNum, pageSize, true);Page<> page= (Page<>)TestMapper.query( ); 或者:PageHelper.startPage(pageNum, pageSize, true);Page<> page= (Page<>)TestMapper.query( );XXXMapper.xxxx这样就不会报这个错了。 还是因为自己对这个分页助手不够了解呀。。。
2020年05月25日
1 阅读
0 评论
0 点赞