设置通过runSketch触发的PApplet的数据文件夹位置

时间:2016-10-23 06:50:08

标签: java clojure processing

我正在运行一个Processing sketch(一个PApplet子类,通过从Processing sketch导出创建)来自Clojure。基本过程是

  1. 导出草图
  2. 在导出的应用程序中找到jar文件
  3. 将这些jar文件安装到本地maven repo
  4. 使用lein
  5. 在clojure中加载libs

    代码位于this GH repo,包括(合理地)有关如何设置和重现问题的最低指令。

    加载基本草图有效,但是当我创建一个调用例如草图的草图时loadImage()要从我的data文件夹中加载图片,草图无法找到它。

    我知道这是一种令人费解的方式 - 这对我来说是部分学习练习,部分原因是我是一个疯子而不是JVM人。

    有没有办法动态告诉PApplet子类的数据文件夹在哪里?或者我到处都是坚持绝对的路径?

    编辑:呃,真是一团糟。看起来问题是我实际上将每个PApplet子类包装在一个clojure proxy中(这样我可以拦截某些方法并使各种草图一起发挥很好)但是处理方式发现数据路径涉及looking at the ProtectionDomain to find the root source path,所以这不会起作用,因为我正在尝试它。回到绘图板......

1 个答案:

答案 0 :(得分:0)

所以你使用maven链接到你从Processing导出的jar,那些jar无法找到sketch目录?

如果我是你,我会看两个地方:

The Processing JavaDoc包含有关Processing中每个变量和函数的详细参考。特别查看PApplet课程并查看以下内容:

  • ARGS_SKETCH_FOLDER
  • selectInput()
  • selectOutput()
  • sketchFile()
  • sketchOutputPath()和sketchOutputStream()
  • sketchPath()

我敢打赌,通过设置第一个变量或覆盖其中一些功能,您可以将Processing放在任何您想要的位置。

如果您需要更多详细信息,the Processing source会告诉您Processing如何使用上述所有内容。