如何基于Processing的.pde文件创建Processing库(无需GUI编辑器)
纯轻量方式创建Processing库(无需Eclipse等GUI编辑器)
咱们完全可以用Processing IDE导出+命令行工具(或Ant)来搞定这个流程,不用碰那些重型IDE,步骤清晰明了:
1. 从.pde导出可编译的.java文件
- 打开Processing IDE,加载你的主.pde文件(以及关联的其他.pde文件)
- 点击顶部菜单的文件 > 导出应用程序,选择任意平台(比如Desktop),导出完成后,在
导出的文件夹/[平台]/source目录下就能拿到对应的.java文件 - 对生成的.java文件做小修改:
- 确保类是
public修饰的(Processing默认生成的类可能没有public,需要加上,这样外部sketch才能访问) - 检查头部是否有
import processing.core.*;,如果没有就补上 - 如果你的库有多个类,确保每个类的.java文件都做同样的检查
- 确保类是
2. 手动编译.java文件(不用Ant的话)
首先得找到Processing的core.jar文件,它的位置:
- Windows:
C:\Program Files\Processing\core\library\core.jar - Mac:
/Applications/Processing.app/Contents/Java/core/library/core.jar - Linux:
~/processing/core/library/core.jar
打开终端/命令提示符,切换到.java文件所在目录,执行编译命令:
# 单文件编译 javac -cp "/path/to/core.jar" YourLibraryClass.java # 多文件编译(如果有多个类) javac -cp "/path/to/core.jar" *.java
这里的YourLibraryClass是你修改后的主类名,路径里如果有空格记得加引号(Windows用双引号,Linux/Mac用单引号或转义空格)。
3. 打包成符合规范的Jar文件
编译完成后会生成.class文件,用jar命令打包:
jar cvf YourLibraryName.jar *.class
注意YourLibraryName要符合Processing库的命名习惯——尽量简洁,小写加下划线或者驼峰都可以,比如shape_utils.jar或ShapeUtils.jar。
4. 整理Processing库目录结构
Processing库有固定的目录结构,你需要创建这样的文件夹:
YourLibraryName/ ├── library/ │ └── YourLibraryName.jar # 刚才打包的jar文件 ├── examples/ # 可选,放几个演示库用法的pde示例 ├── reference/ # 可选,放库的文档(比如HTML格式的参考) └── README.txt # 可选,写清楚库的功能、用法
把这个文件夹放到Processing的库目录:
- Windows:
我的文档\Processing\libraries - Mac:
~/Documents/Processing/libraries - Linux:
~/sketchbook/libraries
放好之后重启Processing,就能在导入库菜单里找到你的库了!
5. 用Ant自动化流程(高效进阶)
如果需要反复编译打包,写个Ant脚本能省不少事。创建build.xml文件,内容如下(根据你的路径修改):
<project name="YourLibraryName" default="dist" basedir="."> <!-- 修改为你的Processing core目录路径 --> <property name="processing.core" location="/Applications/Processing.app/Contents/Java/core"/> <property name="src" location="src"/> <!-- 放.java文件的目录 --> <property name="build" location="build"/> <!-- 编译后的class文件目录 --> <property name="dist" location="dist"/> <!-- 生成的jar文件目录 --> <!-- 配置classpath,引入Processing的core.jar --> <path id="classpath"> <fileset dir="${processing.core}/library"> <include name="core.jar"/> </fileset> </path> <!-- 创建必要的目录 --> <target name="init"> <mkdir dir="${build}"/> <mkdir dir="${dist}"/> </target> <!-- 编译源码 --> <target name="compile" depends="init"> <javac srcdir="${src}" destdir="${build}" classpathref="classpath"/> </target> <!-- 打包成jar --> <target name="dist" depends="compile"> <jar destfile="${dist}/YourLibraryName.jar" basedir="${build}"/> </target> <!-- 清理临时文件 --> <target name="clean"> <delete dir="${build}"/> <delete dir="${dist}"/> </target> </project>
然后在终端执行ant dist,就能自动完成编译和打包,直接拿dist目录下的jar放到库结构里就行。
小提醒
- 确保你的库类里的方法都是
public的,这样外部sketch才能调用 - 如果你的库依赖其他jar,也要把它们放到
library目录里 - 测试的时候可以新建一个Processing sketch,导入你的库,看看能不能正常运行
内容的提问来源于stack exchange,提问作者commonpike
相关产品推荐
相关产品推荐

