如何通过PApplet.runSketch访问文件夹中的Java类?
问题解决:Processing主Sketch访问子文件夹中的Java类
问题原因
Processing默认仅自动识别主sketch.pde同级目录、或src目录下的Java类,自定义同级文件夹内的类不会被自动纳入编译路径,因此主Sketch无法识别Game1类。
解决方案1:使用src目录+包声明(推荐,符合项目规范)
- 调整目录结构:在主Sketch根目录(与
sketch.pde同级)创建src文件夹,将Game1文件夹移入src内,最终结构如下:你的Sketch文件夹/ ├─ sketch.pde └─ src/ └─ Game1/ └─ Game1.java - 给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); } } - 主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:手动添加类文件到项目
若不想调整目录结构,可直接将类文件纳入项目编译路径:
- 打开Processing IDE并加载主
sketch.pde - 点击顶部菜单栏
Sketch→Add File... - 选中
Game1/Game1.java文件添加,Processing会自动将其纳入编译路径,主Sketch即可识别Game1类。
额外注意事项
- 可通过
println(sketchPath("Game1"));输出路径,确认--sketch-path参数指向的文件夹是否正确 - 确保
Game1类的构造函数为public(当前代码已满足)
内容的提问来源于stack exchange,提问作者BoomDev
相关产品推荐
相关产品推荐

