为通过 runSketch 触发的 PApplet 设置数据文件夹位置
set data folder location for PApplet triggered through runSketch
我是来自 Clojure 的 运行 Processing 草图(PApplet
子类,通过从 Processing 草图导出创建)。基本流程是
- 导出草图
- 在导出的应用程序中找到 jar 文件
- 将这些 jar 文件安装到本地 maven 仓库中
- 使用
lein
在 clojure 中加载库
代码在 this GH repo 中,包括(合理地)关于如何设置和重现问题的最少说明。
加载基本草图有效,但是当我创建一个调用例如loadImage()
从我的 data
文件夹加载图像,草图找不到它。
我知道这是一种令人费解的方法 - 这对我来说部分是一种学习练习,部分是因为我是一个 lisp 人而不是 JVM 人。
有什么方法可以动态地告诉 PApplet
子类它的数据文件夹在哪里?还是我到处都是绝对路径?
编辑:呃,真是一团糟。看起来问题是我实际上将每个 PApplet
子类包装在 clojure proxy
中(这样我就可以拦截某些方法并使各种草图一起玩得很好)但是 Processing 找到的方式数据路径涉及 looking at the ProtectionDomain to find the root source path,所以这不会起作用,因为我目前正在尝试。回到绘图板...
所以您正在使用 maven link 从 Processing 导出的 jar,而这些 jar 找不到 sketch 目录?
如果我是你,我会看两个地方:
The Processing JavaDoc 包含对 Processing 中每个变量和函数的详细参考。特别检查 PApplet
class 并检查以下内容:
- ARGS_SKETCH_FOLDER
- 选择输入()
- 选择输出()
- sketchFile()
- sketchOutputPath() 和 sketchOutputStream()
- sketchPath()
我敢打赌,通过设置第一个变量或重写其中一些函数,您可以让 Processing 查看任何您想要的地方。
如果您需要更多详细信息,the Processing source 将准确告诉您 Processing 如何使用上述所有内容。
我是来自 Clojure 的 运行 Processing 草图(PApplet
子类,通过从 Processing 草图导出创建)。基本流程是
- 导出草图
- 在导出的应用程序中找到 jar 文件
- 将这些 jar 文件安装到本地 maven 仓库中
- 使用
lein
在 clojure 中加载库
代码在 this GH repo 中,包括(合理地)关于如何设置和重现问题的最少说明。
加载基本草图有效,但是当我创建一个调用例如loadImage()
从我的 data
文件夹加载图像,草图找不到它。
我知道这是一种令人费解的方法 - 这对我来说部分是一种学习练习,部分是因为我是一个 lisp 人而不是 JVM 人。
有什么方法可以动态地告诉 PApplet
子类它的数据文件夹在哪里?还是我到处都是绝对路径?
编辑:呃,真是一团糟。看起来问题是我实际上将每个 PApplet
子类包装在 clojure proxy
中(这样我就可以拦截某些方法并使各种草图一起玩得很好)但是 Processing 找到的方式数据路径涉及 looking at the ProtectionDomain to find the root source path,所以这不会起作用,因为我目前正在尝试。回到绘图板...
所以您正在使用 maven link 从 Processing 导出的 jar,而这些 jar 找不到 sketch 目录?
如果我是你,我会看两个地方:
The Processing JavaDoc 包含对 Processing 中每个变量和函数的详细参考。特别检查 PApplet
class 并检查以下内容:
- ARGS_SKETCH_FOLDER
- 选择输入()
- 选择输出()
- sketchFile()
- sketchOutputPath() 和 sketchOutputStream()
- sketchPath()
我敢打赌,通过设置第一个变量或重写其中一些函数,您可以让 Processing 查看任何您想要的地方。
如果您需要更多详细信息,the Processing source 将准确告诉您 Processing 如何使用上述所有内容。