You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PApplet.runSketch访问文件夹中的Java类?

问题解决:Processing主Sketch访问子文件夹中的Java类

问题原因

Processing默认仅自动识别主sketch.pde同级目录、或src目录下的Java类,自定义同级文件夹内的类不会被自动纳入编译路径,因此主Sketch无法识别Game1类。

解决方案1:使用src目录+包声明(推荐,符合项目规范)

  1. 调整目录结构:在主Sketch根目录(与sketch.pde同级)创建src文件夹,将Game1文件夹移入src内,最终结构如下:
    你的Sketch文件夹/
    ├─ sketch.pde
    └─ src/
       └─ Game1/
          └─ Game1.java
    
  2. 给Game1类添加包声明:在Game1.java顶部加入包语句:
    package Game1;
    import processing.core.*;
    
    public class Game1 extends PApplet {
        private final int w, h;
    
        public Game1(int w, int h) {
            this.w = w;
            this.h = h;
        }
    
        public void settings() {
            size(this.w, this.h);
        } 
    
        public void draw() {
            background(0);
        }
    }
    
  3. 主Sketch导入Game1类:在sketch.pde顶部添加导入语句:
    import Game1.Game1;
    
    void settings() {
      size(600, 200);
    }
    
    void setup() {
      String args[] = {
        "--display=1",
        "--location=0,0",
        "--sketch-path=" + sketchPath("Game1"),
        "Game1"
      };
      Game1 g = new Game1(320, 420);
      PApplet.runSketch(args, g);
    }
    
    void draw() {
      background(0);
      ellipse(50, 50, 10, 10);
    }
    

解决方案2:手动添加类文件到项目

若不想调整目录结构,可直接将类文件纳入项目编译路径:

  1. 打开Processing IDE并加载主sketch.pde
  2. 点击顶部菜单栏 Sketch → Add File...
  3. 选中Game1/Game1.java文件添加,Processing会自动将其纳入编译路径,主Sketch即可识别Game1类。

额外注意事项

  • 可通过println(sketchPath("Game1"));输出路径,确认--sketch-path参数指向的文件夹是否正确
  • 确保Game1类的构造函数为public(当前代码已满足)

内容的提问来源于stack exchange,提问作者BoomDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 12:05:19