如何在处理中添加外部库

当我尝试添加外部Java库时,我一直在使用处理一段时间并遇到了问题。 我按照在线提供的所有步骤进行操作,我必须访问lib文件夹(processing-3.3)并在其中添加我的库。 不幸的是,我的方法不起作用。 我面临的另一个问题是我不知道如何导入这个库。 这是库的链接 ,这是.jar文件链接 。 有人可以帮忙吗?

问候

该库未包装为Processing库,并且依赖于Apache Commons Math库 。 从理论上讲,你可以在Processing中使用它,但它需要很长时间,因为你必须:

  1. 下载commons-math3-3.6.1-bin.zip
  2. 解压缩,并将commons-math3-3.6.1.jar重命名为commons_math.jar (处理对库名中的某些字符具有限制性)
  3. Documents / Processing / libraries中创建一个名为commons_math的文件夹,然后在另一个名为library的文件夹中创建一个文件夹(这样你就有了Documents / Processing / libraries / commons_math / library
  4. 复制Documents / Processing / libraries / commons_math / library中的commons_math.jar
  5. 重启处理

此时,您应该可以在Processing: Sketch> Import Library …>(Contributed)commons_math中执行此操作 ,您将看到导入的所有包。 您应该能够运行草图,演示您可以使用该库。

接下来是trilateration库,它不是构建的,所以你需要安装/设置gradle,构建它,然后为trilateration库重复上面的过程。 另一种方法是在草图中创建3个选项卡(尝试保持整洁),每个三边形库类一个 ,复制源代码,远程为每个类添加前缀的public修饰符(因为Processing IDE中的Processing草图允许单个公共类)并删除包声明。

最后你应该能够在Processing … phew中使用这个库!

这很乏味,维护难等等等。

我推荐使用eclipse 。 如果您想节省创建Processing Project的时间,而不是手动复制Processing核心库,创建扩展PApplet等的主类,则可以安装Proclipsing 。 它是一个eclipse插件,可以轻松创建Processing Java项目。

一旦你在日食并且可以运行基本草图,你需要做的就是:

  1. 将Apache Commons Math jar添加到项目lib / user文件夹中 将公共项添加到项目中
  2. 将库添加到构建路径 添加公共来构建路径
  3. 下载/解压缩trilateration库
  4. 从库文件夹的src / main / java中拖动eclipse项目src顶部的com文件夹 将trilateration源添加到项目中
  5. 从库的自述文件中复制示例代码: 库示例代码
  6. 请注意,某些代码为红色,因为未导入类。 按CMD+Shift+O (在OSX上)/ Ctrl+Shift+O (在Linux / Windows上)。 这将组织import(并为您完成工作)。 第一个建议就像一个魅力: 组织进口
  7. 右键单击草图,然后选择Run As> Java Application: 运行为Java应用程序

呜啊! 您现在可以运行示例代码。 它看起来并不令人印象深刻:没有显示,甚至没有显示在控制台中,但是嘿,它编译:D

您可以轻松添加一些打印语句来查看结果:

 println(centroid); println("standardDeviation",standardDeviation); println("covarianceMatrix",covarianceMatrix); 

此时,您可以开始修改代码,按照您的意愿执行操作。 请记住,Processing中的大多数绘图函数都使用float参数,这个库主要使用double因此请确保在绘制之前从doublefloat

如果您已经使用Processing一段时间了,那么eclipse路径听起来很可行,并且IDE中有很多很好的function可以加速开发。

有更快的方法吗? 可能是:看一下M2E ,它可以很容易地在eclipse中与Maven集成。 trilateration库具有Maven支持 。 从理论上讲,您可以让Maven完成添加Apache Commons Math的繁琐繁琐工作,编译并将trilateration库添加到您的项目中。 这将从Processing land进一步扩展到Java领域,但如果你有时间:它正在探索。 您知道的Java越多,处理您的出价就越容易:)