我直接查看 Processing 4 的revisions.md文档中关于handleOpen()重写的详细说明。你的发现非常准确这是Processing 4 Beta 62022年引入的重大架构变更确实打破了文件夹名必须等于主程序名的二十年传统约束。以下是详细调研结果核心结论Processing 4.0 Beta 6 对handleOpen()进行了重大重写官方明确说明now possible to use something besides the folder name for the main sketch file 。sketch.properties中的main配置就是这一变更的具体实现机制。传统约束 vs 新机制维度Processing 1.x~3.x / 4.0 Beta 5 之前Processing 4.0 Beta 6 之后强制规则文件夹名MySketch/必须包含MySketch.pde可通过sketch.properties指定任意.pde作为主程序文件结构MySketch/MySketch.pde同名强制MySketch/Entry.pdesketch.properties指定mainEntry.pde版本控制重命名 sketch 会破坏 Git 历史主程序名与文件夹解耦重构更自由多入口不支持理论上支持需验证sketch.properties的作用机制sketch.properties是 Processing IDE 用于存储 sketch元数据的配置文件采用标准 Java Properties 格式。在引入main之前它主要用于mode.id— 指定 sketch 的运行模式如 Java、Python 等mode— 模式标识Processing 4 Beta 6 新增了对main键的解析使得 IDE 在打开 sketch 文件夹时优先读取sketch.properties中的main值定位主程序文件— 不再默认使用文件夹名.pde构建代码列表— 将该文件作为首个 tab主程序其余.pde按字母顺序排列为辅助 tab实际应用场景这一变更主要解决了以下痛点1. 版本控制友好# sketch.properties mainGameEngine.pde你可以将文件夹命名为v1.2-refactor/或feature-branch/而主程序始终保持GameEngine.pde避免重命名导致的 Git 历史断裂。2. 多平台/多入口项目# sketch.properties mainMain_Windows.pde同一文件夹内可存放Main_Windows.pde、Main_Mac.pde通过切换main配置选择入口。3. 库开发模式库作者可以维护一个通用文件夹内部包含Demo.pde、Test.pde、Benchmark.pde通过sketch.properties灵活切换演示入口。技术实现细节推测基于 Processing 4 源码结构分析 Sketch类的getMainFile()和getMainFilePath()方法在 Beta 6 之前的实现逻辑大致为// Beta 5 及之前硬编码同名规则 File mainFile new File(sketchFolder, sketchName .pde);Beta 6 之后逻辑变为// Beta 6 之后优先读取 sketch.properties Properties props loadSketchProperties(sketchFolder); String mainFileName props.getProperty(main, sketchName .pde); File mainFile new File(sketchFolder, mainFileName);handleOpen()的重写正是为了支持这一从约定优于配置到配置覆盖约定的转变。注意事项注意点说明向后兼容无sketch.properties或main缺失时仍回退到传统同名规则命令行工具processing-java的--sketch参数仍指向文件夹内部主程序解析逻辑应与 IDE 一致导出/构建导出的应用名称仍可能基于文件夹名而非main指定的文件名社区工具链部分第三方工具如 VS Code 扩展 可能尚未适配此变更仍强制检查同名约束总结你的发现触及了 Processing 架构演进的一个关键点从强约定文件夹名主程序名转向弱约定配置sketch.properties显式声明。这是 Ben Fry 等核心开发者为了适应现代开发工作流版本控制、持续集成、模块化开发而做的妥协同时保持了向后兼容性。如果你需要进一步验证main的具体语法如是否需包含.pde扩展名、是否支持相对路径等建议直接在 Processing 4.3 中实验或查看app/src/processing/app/Sketch.java中loadSketchProperties()方法的源码实现。我的想法Processing是一个老项目了从2001年诞生到现在已经有25个年头很多技术理念需要与时俱进我觉得它还是在尽力跟上这个日新月异的时代的。2026年为Processing庆生~~~