银河麒麟系统JDK安装全攻略:从架构选型到生产环境调优
1. 项目概述为什么在银河麒麟上装JDK是个技术活如果你是一名在国产化浪潮中摸爬滚打的开发者或运维手头突然多了一台预装银河麒麟操作系统的机器而你的Java应用急需部署上去那么“安装JDK”这个看似基础的操作很可能成为你遇到的第一个拦路虎。这绝不是简单的apt-get install就能搞定的事情。银河麒麟作为一款基于Linux内核的国产操作系统其软件生态、包管理机制乃至系统目录结构都与我们熟悉的CentOS、Ubuntu有着微妙的差异。尤其是在涉及到底层运行环境如Java时一个配置不当就可能导致应用无法启动、性能低下甚至系统级的不稳定。我经历过不止一次这样的场景从官网下载了通用的Linux版JDK压缩包解压后配置了JAVA_HOME满心欢喜地运行java -version却提示“命令未找到”或“无法执行二进制文件”。问题根源往往在于架构匹配、环境变量作用域以及系统集成度这几个关键点上。银河麒麟常见于ARM和x86架构的国产CPU平台而Oracle或OpenJDK提供的预编译包其依赖的底层库可能与麒麟系统存在兼容性缝隙。此外是采用系统包管理器安装还是手动解压配置这两种路径的选择也直接关系到后续维护的复杂度。这篇文章我将结合多次在银河麒麟V10包括桌面版和服务器版上部署Java生产环境的实战经验为你拆解从JDK选型、安装、验证到深度配置的全过程。我会重点解释每一个步骤背后的“为什么”并分享那些在官方文档里不会提及的“坑”和技巧。无论你是要为开发配环境还是要为生产服务器奠基这份指南都能让你避开弯路一步到位。2. 核心思路解析系统包管理器 vs 手动安装的抉择面对银河麒麟安装JDK首要的决策点就是安装方式。这并非一个随意的选择而是基于维护性、合规性以及环境隔离需求的综合考量。下面我们来详细拆解两种主流方案的优劣与适用场景。2.1 方案对比yum/dnf安装与手动解压配置银河麒麟通常使用yum较老版本或dnf较新版本如V10 SP1后作为包管理器。通过它安装JDK意味着你将JDK的管理权交给了操作系统。通过包管理器安装以OpenJDK为例sudo dnf search openjdk sudo dnf install java-11-openjdk-devel优点一键完成依赖自动解决包管理器会自动处理JDK运行所需的所有系统库依赖避免因缺少glibc等基础库版本不对导致的问题。与系统深度集成安装后的JDK会被放置在标准系统路径如/usr/lib/jvm/并自动通过alternatives机制配置系统级的Java命令链接。这意味着任何用户在任何终端下理论上都可以直接使用java、javac命令。便于统一管理和更新系统安全更新会包含JDK的补丁你可以用sudo dnf update统一升级无需手动跟踪版本。缺点版本可能滞后仓库中的JDK版本可能不是最新的例如你需要JDK 17的某个特定更新版本但仓库只提供JDK 11。定制化程度低安装路径、包含的模块等都由包定义决定难以进行个性化调整。可能存在“全家桶”一些-devel或-headless包会安装额外的非必需组件。手动下载压缩包安装即从Oracle官网或Adoptium等站点下载.tar.gz压缩包解压到自定义目录如/opt/java/然后手动配置环境变量。优点版本控制绝对自由你可以精确安装任意可用版本包括早期的JDK 8或最新的LTS版本甚至每日构建版。环境隔离与多版本共存可以轻松地在/opt下安装多个JDK版本通过切换JAVA_HOME来为不同应用或用户指定运行时互不干扰。这对于同时维护多个历史项目的场景至关重要。目录结构清晰便于清理所有文件都在一个目录下卸载时直接删除整个目录即可不留残余。缺点所有事情都需手动包括下载、校验、解压、配置环境变量每一步都可能出错。依赖库需自行保障如果JDK二进制文件依赖更高版本的系统库你需要自行解决这可能涉及复杂的编译或风险操作。系统升级不覆盖操作系统升级不会照顾到你手动安装的JDK需要你自行管理版本更新和安全补丁。2.2 架构选型ARM与x86的精准匹配这是银河麒麟环境下最关键的硬件兼容性问题。下载JDK时你必须明确你的CPU架构。x86_64 (AMD64)这是最常见的架构适用于Intel或AMD的CPU。在下载页面选择Linux x64或Linux x86_64版本。aarch64 (ARM64)这是国产化平台的主流如飞腾、鲲鹏处理器。必须选择Linux aarch64版本。如何确认在终端执行uname -m如果输出x86_64则选择x64版本如果输出aarch64则必须选择ARM64版本。安装错误的架构包一定会遇到“无法执行二进制文件”的错误。2.3 环境变量作用域用户级、系统级与脚本级配置JAVA_HOME和PATH时作用域决定了谁能用这个Java环境。用户级 (~/.bashrc或~/.bash_profile)只对当前登录用户生效。这是最安全、最常用的方式不会影响系统其他用户。适合开发机个人使用。# 编辑当前用户的环境配置文件 vim ~/.bashrc # 在文件末尾添加 export JAVA_HOME/opt/jdk-17.0.10 export PATH$JAVA_HOME/bin:$PATH系统级 (/etc/profile或/etc/profile.d/目录下新建.sh文件)对所有用户生效。适用于服务器上为所有运维或应用账户提供统一的Java环境。需谨慎操作错误的系统级配置可能导致所有用户无法正常使用命令行。注意更推荐在/etc/profile.d/目录下创建独立的脚本文件如java.sh而不是直接修改/etc/profile。这样管理更清晰也便于在出现问题时分块排查。sudo vim /etc/profile.d/java.sh # 内容同上 export JAVA_HOME/usr/lib/jvm/java-11-openjdk export PATH$JAVA_HOME/bin:$PATH脚本级在特定的启动脚本如Tomcat的catalina.sh、Spring Boot的jar启动命令前中直接设置。这实现了最高级别的环境隔离确保特定服务使用特定的JDK完全不受系统全局设置的影响。# 在应用启动脚本中 export JAVA_HOME/opt/jdk-11.0.22 /path/to/your/app.jar3. 实战安装全流程从下载到验证我们以最灵活、最常用的手动安装OpenJDK 17 LTS版本到/opt目录为例展示完整流程。假设我们的银河麒麟系统是V10架构为aarch64。3.1 准备工作与资源获取首先我们需要一个可靠的JDK发行版来源。Oracle JDK有严格的商业许可限制对于生产环境我更推荐使用开源的OpenJDK发行版如Eclipse Temurin原AdoptOpenJDK或Amazon Corretto。它们提供预构建的、经过良好测试的二进制包且对生产环境友好。访问下载站点打开 Eclipse Temurin官网 。在下载页面你会看到清晰的筛选器。精准筛选版本选择你需要的版本例如17(LTS)。操作系统选择Linux。架构根据uname -m的结果选择aarch64(ARM) 或x64(Intel/AMD)。包类型选择JDK而不仅仅是JRE。镜像类型选择.tar.gz压缩包格式适用于手动安装。下载与校验点击下载链接。下载完成后强烈建议校验文件的完整性。发行版网站通常会提供文件的SHA256校验和。在终端进入下载目录执行sha256sum OpenJDK17U-jdk_aarch64_linux_hotspot_17.0.10_7.tar.gz将输出的哈希值与官网提供的校验和进行比对确保文件在下载过程中未损坏或被篡改。3.2 解压与目录规划我们计划将JDK安装到/opt目录这是存放第三方应用程序的标准位置。创建目标目录并解压# 切换到root用户或使用sudo sudo mkdir -p /opt/java sudo tar -xzf OpenJDK17U-jdk_aarch64_linux_hotspot_17.0.10_7.tar.gz -C /opt/java/这里-C参数指定了解压的目标目录。解压后/opt/java/下会生成一个类似jdk-17.0.107的目录。建立软链接可选但推荐为了便于管理避免未来升级时到处修改路径可以创建一个通用的软链接。cd /opt/java sudo ln -s jdk-17.0.107 current这样/opt/java/current就永远指向当前活跃的JDK版本。配置环境变量时使用这个软链接路径将来要升级JDK只需解压新版本删除旧软链接再重新创建current指向新目录即可环境变量无需改动。3.3 配置环境变量用户级我们将为当前操作用户配置环境变量这是最安全的方式。编辑用户配置文件vim ~/.bashrc使用你熟悉的编辑器如nano也可以。在文件末尾添加以下内容# 设置 JAVA_HOME指向我们创建的软链接 export JAVA_HOME/opt/java/current # 将 JDK 的 bin 目录添加到 PATH 的最前面确保系统优先使用我们安装的Java export PATH$JAVA_HOME/bin:$PATH关键解释$PATH是一个包含多个目录的变量系统从左到右在这些目录中查找命令。我们将$JAVA_HOME/bin放在最前面$PATH之前是为了确保当我们输入java时使用的是我们刚安装的版本而不是系统可能自带的旧版本或其他版本。使配置立即生效配置文件修改后需要重新加载才能在当前终端生效。source ~/.bashrc或者关闭终端重新打开一个新的。3.4 安装验证与功能测试配置完成后必须进行多维度验证确保安装完全成功。基础版本验证java -version预期输出应明确显示你安装的版本信息例如openjdk version 17.0.10 2024-01-16 OpenJDK Runtime Environment Temurin-17.0.107 (build 17.0.107) OpenJDK 64-Bit Server VM Temurin-17.0.107 (build 17.0.107, mixed mode, sharing)如果看到类似信息恭喜你java命令已配置成功。编译器验证javac -version输出应为对应的JDK版本。这一步确认了开发工具链也已就位。环境变量验证echo $JAVA_HOME应输出/opt/java/current。再检查PATHecho $PATH | tr : \n | grep java应该能看到/opt/java/current/bin出现在PATH中。编写并运行一个简单的HelloWorld程序进行终极测试cd ~ cat HelloWorld.java EOF public class HelloWorld { public static void main(String[] args) { System.out.println(Hello, Galaxy Kirin!); } } EOF javac HelloWorld.java java HelloWorld如果终端打印出Hello, Galaxy Kirin!则证明从编译到运行的整个Java环境工作完全正常。4. 高级配置与生产环境调优安装成功只是第一步。要让JDK在生产环境的银河麒麟服务器上稳定、高效地运行还需要进行一系列针对性配置。4.1 系统级配置与多版本管理在服务器上可能需要为所有用户或特定系统服务配置Java环境。为所有用户配置系统级 如前所述在/etc/profile.d/下创建脚本是最佳实践。sudo vim /etc/profile.d/java.sh输入与用户级配置相同的内容export JAVA_HOME/opt/java/current export PATH$JAVA_HOME/bin:$PATH保存后无需执行source因为所有新的登录shell都会自动加载/etc/profile.d/下的脚本。你可以通过sudo -i切换到root的登录shell或新建一个SSH连接来测试。使用alternatives机制管理多版本 如果你的系统通过yum/dnf安装了多个JDK或者你想将手动安装的JDK纳入系统统一命令管理可以使用alternatives。# 将我们手动安装的JDK加入alternatives系统 sudo update-alternatives --install /usr/bin/java java /opt/java/current/bin/java 1000 sudo update-alternatives --install /usr/bin/javac javac /opt/java/current/bin/javac 1000 # 交互式选择默认版本 sudo update-alternatives --config java sudo update-alternatives --config javacalternatives会创建符号链接让你可以方便地在多个Java版本间切换。数字1000是优先级数字越大在自动模式下被选中的优先级越高。4.2 JVM内存参数与垃圾回收器调优默认的JVM参数可能不适合你的应用。调整这些参数对性能影响巨大。常用启动参数示例 在启动Java应用时可以通过-Xms和-Xmx设置堆内存的初始大小和最大大小。java -Xms512m -Xmx2g -jar your-application.jar-Xms512mJVM启动时初始堆内存为512MB。设置合适的初始值可以减少运行时动态调整堆大小的开销。-Xmx2gJVM堆内存最大可扩展到2GB。这个值绝对不能超过物理内存并且要为操作系统和其他进程留出足够内存。在银河麒麟上可以通过free -h命令查看可用内存。选择垃圾回收器 对于不同特性的应用选择合适的垃圾回收器GC至关重要。JDK 8以后G1GC是默认的但在低延迟要求的场景下ZGC或Shenandoah可能更合适。G1 GC (默认)适用于大多数需要平衡吞吐量和延迟的应用。java -XX:UseG1GC -jar your-app.jarZGC适用于超大堆内存数百GB且要求极低停顿时间10ms以下的场景。注意ZGC在ARM架构上的支持可能因JDK具体构建而异需测试验证。java -XX:UseZGC -Xmx4g -jar your-app.jarShenandoah与ZGC目标类似但算法不同同样需要验证在ARM平台上的兼容性。实操心得在生产环境调整JVM参数前务必在测试环境进行充分的压力测试。盲目增大堆内存可能导致更长的GC停顿时间“Stop-The-World”。监控GC日志是调优的基础可以添加-Xlog:gc*:filegc.log参数来输出详细的GC日志进行分析。4.3 配置安全策略与密码库在银河麒麟这类强调安全性的系统中Java应用可能需要访问特定的加密服务或密钥库。管理密钥库Keystore如果你的应用使用HTTPS如Spring Boot内置Tomcat需要配置SSL证书。# 将PFX或JKS格式的证书导入到Java的默认密钥库不推荐因为会修改全局设置 keytool -importkeystore -srckeystore your-cert.pfx -srcstoretype PKCS12 -destkeystore $JAVA_HOME/lib/security/cacerts -deststoretype JKS # 更推荐的方式使用独立的密钥库并在启动应用时指定 java -Dserver.ssl.key-store/path/to/your/keystore.jks -Dserver.ssl.key-store-passwordyourpassword -jar app.jar配置Java安全策略如果应用涉及文件读写、网络访问等敏感操作可能需要自定义安全策略文件java.policy并在启动时通过-Djava.security.policy指定。在银河麒麟的严格权限管理下这一步有时是必须的。5. 深度排坑与疑难杂症解决即使按照步骤操作你也可能会遇到一些意想不到的问题。下面是我总结的几个典型“坑”及其解决方案。5.1 常见问题速查表问题现象可能原因排查步骤与解决方案执行java -version提示bash: java: command not found1.JAVA_HOME/bin未加入PATH。2. 环境变量未生效。3. 安装的二进制文件架构不对。1.echo $PATH检查路径。2. 执行source ~/.bashrc或重新登录。3. 用file $JAVA_HOME/bin/java检查文件类型确认是ELF 64-bit LSB executable且架构正确。执行java命令报错/lib64/libc.so.6: version GLIBC_2.xx not foundJDK二进制文件依赖的glibc库版本高于系统当前版本。1.ldd --version查看系统glibc版本。2. 下载更低版本或与系统glibc版本匹配的JDK发行版。切勿尝试自行升级系统glibc极易导致系统崩溃。应用启动报错java.lang.OutOfMemoryError: Java heap space堆内存不足。增加JVM最大堆内存参数-Xmx例如从-Xmx1g调整为-Xmx2g。确保系统物理内存充足。应用启动报错java.lang.OutOfMemoryError: unable to create new native thread进程创建的线程数达到系统或用户限制。1.ulimit -u查看用户最大进程数。2. 检查/etc/security/limits.conf可适当为应用用户增加nproc限制。通过systemd启动的Java服务无法读取环境变量systemd服务单元有自己的环境配置不读取用户shell的配置。在服务的.service文件中使用Environment指令直接设置[Service]EnvironmentJAVA_HOME/opt/java/currentEnvironmentPATH/opt/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin中文显示乱码或日志时间不对系统区域Locale和时区设置与Java默认不匹配。1. 确保系统已安装中文字体包sudo dnf install fonts-chinese。2. 在Java启动参数中指定语言和时区-Dfile.encodingUTF-8 -Duser.timezoneAsia/Shanghai5.2 特定于银河麒麟的注意事项权限问题银河麒麟默认的安全策略可能比较严格。如果你将JDK安装在/opt目录确保你的运行用户对该目录有读取和执行权限rx。通常/opt目录属于root你需要确保应用运行用户如tomcat能访问到/opt/java/current下的文件。SELinux/安全模块如果系统启用了SELinux或其他强制访问控制模块可能会阻止Java进程访问某些资源。如果遇到莫名其妙的权限拒绝错误可以尝试临时将SELinux设置为宽容模式进行测试sudo setenforce 0。但生产环境切勿长期关闭正确的做法是分析审计日志(/var/log/audit/audit.log)生成并加载正确的SELinux策略模块。依赖库路径手动安装的JDK其动态库.so文件路径可能不在系统的默认库搜索路径中。如果遇到UnsatisfiedLinkError可能需要通过-Djava.library.path参数指定本地库路径或者将相关.so文件链接到/usr/lib64等系统目录下需谨慎。图形界面支持如果你安装的是headless无头版本的JDK或者服务器未安装图形环境那么任何依赖AWT/Swing图形界面的Java程序即使只是弹出个错误对话框都可能失败。对于纯服务器应用务必选择-headless包或确认安装的JDK包含完整的图形库。5.3 性能监控与基础维护安装配置好后持续的监控和维护同样重要。查看JVM进程信息使用jps命令可以快速查看当前系统所有Java进程的PID和主类名。监控JVM状态jstat命令可以用来监控堆内存、垃圾回收等情况是性能调优的利器。例如jstat -gcutil pid 1000 5会每隔1秒1000毫秒输出一次指定进程的GC情况共5次。生成堆转储快照当发生内存泄漏时可以使用jmap命令生成堆转储文件Heap Dump然后用MATEclipse Memory Analyzer等工具进行分析。jmap -dump:live,formatb,fileheapdump.hprof pid定期更新关注JDK发行版的安全公告。对于手动安装的JDK需要制定计划定期下载并升级到安全版本。利用之前创建的current软链接可以做到升级过程对应用基本无感。最后我个人在实际操作中的体会是在银河麒麟这类国产化平台上部署基础软件“慢就是快”。不要急于求成地复制粘贴命令务必理解每一步操作的目的并做好每一步的验证。尤其是在生产环境先在测试机上完整走通整个流程记录下所有步骤和可能的问题形成你自己的部署清单Checklist这会极大地提高成功率和排错效率。国产化环境的适配本身就是一个不断学习和积累的过程每一次成功的部署都是对你技术栈一次有价值的拓展。

相关新闻

告别网络烦恼!B站漫画下载器终极指南,轻松打造个人漫画图书馆

告别网络烦恼!B站漫画下载器终极指南,轻松打造个人漫画图书馆

告别网络烦恼!B站漫画下载器终极指南,轻松打造个人漫画图书馆 【免费下载链接】BiliBili-Manga-Downloader 一个好用的哔哩哔哩漫画下载器,拥有图形界面,支持关键词搜索漫画和二维码登入,黑科技下载未解锁章节&#xf…

2026/10/13 11:46:57 阅读更多 →
AI标准化:从接口协议到产业生态,工程师如何构建技术通用语言

AI标准化:从接口协议到产业生态,工程师如何构建技术通用语言

1. 项目概述:从标准到产业,一场静水深流的变革“人工智能标准化引领产业发展”,这个标题听起来宏大,甚至有些官方。但作为一名长期在科技产业一线观察的从业者,我深知这背后绝非一句空话。它描述的,是像鲍薇…

2026/10/13 11:46:52 阅读更多 →
RAID磁盘阵列实战指南:从核心原理到硬件/软件配置与排错

RAID磁盘阵列实战指南:从核心原理到硬件/软件配置与排错

1. 项目概述:为什么今天还要聊RAID?“RAID磁盘阵列”,这六个字对很多搞IT、运维甚至是对数据安全有点追求的玩家来说,绝对不陌生。但有意思的是,每次聊起它,总会有人觉得这是“上古技术”,或者认…

2026/10/5 10:12:21 阅读更多 →

最新新闻

高德地图校园导航Android项目实战:从Key配置到路线规划全解析

高德地图校园导航Android项目实战:从Key配置到路线规划全解析

简介:这份基于高德地图的校园导航资源,是面向在校学生与初学者的完整项目包,适用于课程设计、毕业设计或项目初期演示。包内提供可直接运行的Android工程与APK安装包,涵盖Java源码、XML布局与配置、Gradle构建脚本及多个SO库&…

2026/10/13 11:46:22 阅读更多 →
时间卷积网络TCN时序预测实战:从零用PyTorch跑通并避坑

时间卷积网络TCN时序预测实战:从零用PyTorch跑通并避坑

简介:这份资源面向初级及以上水平的数据科学家、机器学习爱好者,以及希望深入掌握时间序列预测落地方法的从业者,核心是用Python与TensorFlow搭建时间卷积神经网络(TCN),解决未来数值走向预测问题&#xff…

2026/10/13 11:46:22 阅读更多 →
递归下降分析实战:从文法改造到语法树构建与表达式求值

递归下降分析实战:从文法改造到语法树构建与表达式求值

简介:这份编译原理实验资料面向计算机专业学生及编译器初学者,聚焦自上而下语法分析中的递归下降分析法,帮助读者掌握从文法改造到程序实现的完整流程。资源包内含1个doc文档,约80KB,以实验报告形式呈现,涵…

2026/10/13 11:46:22 阅读更多 →
OpenCV手势识别实战:肤色检测与手指最高点定位

OpenCV手势识别实战:肤色检测与手指最高点定位

1. 从"找最高点"说起:这个需求到底在解决什么问题很多人第一次接触手势交互,脑子里想的都是"识别手势""判断几根手指""做隔空操作"这类大目标,结果一上手就卡在最基础的一步——连手指在画面里的位置…

2026/10/13 11:46:22 阅读更多 →
Vue 3深度解析:从响应式原理到工程实战的价值演进

Vue 3深度解析:从响应式原理到工程实战的价值演进

1. 石器时代&#xff1a;没有框架的日子&#xff0c;前端到底有多痛1.1 原生 JavaScript 的“原始生活”早年间做前端&#xff0c;哪儿有什么框架概念。HTML 里随手塞几个<script>标签&#xff0c;拿原生 JavaScript 操作 DOM&#xff0c;改个文案都得小心翼翼 getElemen…

2026/10/13 11:46:22 阅读更多 →
平面坐标与经纬度转换:从原理到Python实战,彻底解决地图偏移几百米问题

平面坐标与经纬度转换:从原理到Python实战,彻底解决地图偏移几百米问题

简介&#xff1a;本资源面向GIS开发人员与C#程序员&#xff0c;聚焦平面坐标与经纬度之间的相互转换问题&#xff0c;提供一套可运行的工程示例。内容围绕调用动态链接库实现坐标换算展开&#xff0c;涉及北京54、西安80、WGS84、National2000等椭球体模型的选择&#xff0c;以…

2026/10/13 11:45:21 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目&#xff0c;我最大的感受是&#xff0c;大部分坑不是出在技术前沿&#xff0c;而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节&#xff0c;最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了&#xff0c;很难不碰到舵机控制这道坎。做智能小车要转方向&#xff0c;做机械臂要抬关节&#xff0c;做云台要偏航俯仰&#xff0c;背后都是同一个东西在干活&#xff1a;舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”&#xff1f;——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台&#xff1f;或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜&#xff1f;又或者&#xff0c;在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →