当前位置:   article > 正文

openpnp - 软件调试环境搭建_openpnp 教程

openpnp 教程

openpnp - 软件调试环境搭建

概述

想了解openpnp的实现, 先搭建一个调试环境.
实验目的: 能单步调试openpnp源码, 能将openpnp在调试器IDE中跑起来.

笔记

依赖的原始文档为openpnp wiki文档和openpnp工程的自带文档.

openpnp官方站点

一切实验都从官方站点开始 https://openpnp.org/

将openpnp工程克隆到本地

在官方站点上点击Code, 转到github上的openpnp工程页 https://github.com/openpnp/openpnp
找到工程git rep url(https://github.com/openpnp/openpnp.git), 克隆到一个有github访问权限的git托管站点.
再从git托管站点克隆到本地.

将openpnp的wiki工程克隆到本地

由于网络不好, 且openpnp工程自带的文档是不够的, 需要将openpnp wiki工程也克隆到本地
https://github.com/openpnp/openpnp.wiki.git

查看openpnp开发指南

openpnp_wiki\Developers-Guide.md

根据openpnp开发指南搭建openpnp开发环境

IDE的选择

openpnp工程是java写的, 官方推荐2种IDE : Eclipse, IntelliJ IDEA
通过文档描述可知, IntelliJ IDEA用起来相当简单.
而且看文档和后来实验(编译openpnp工程), openpnp需要JDK12以下版本, 否则测试用例中opencv报错. 但是非专业的java程序员, 很难知道JDK各个靠谱版本从哪里下载. 但是IntelliJ IDEA中自带JDK版本选择和下载, 这功能太好用了.
那就选 IntelliJ IDEA(后来通过自己使用, 也发现IntelliJ IDEA用起来是相当简明, 相当友好, 不愧是大部分java开发者都在用的IDE, 群众的眼睛雪亮的).

IntelliJ IDEA学习版的安装

从IDEA官方下载安装程序 https://www.jetbrains.com/idea/download/#section=windows
选择旗舰版下载, 下载到本地为 ideaIU-2022.3.exe
将旗舰版的授权改为长期学习, 网上资料很多, 照着做就好.

引入openpnp工程

在这里插入图片描述
新建一个空项目, 填写项目名称和工程位置. 点击创建.

在这里插入图片描述
在这里插入图片描述
新建从版本控制来的项目
项目的git url 是从github上的openpnp项目克隆到有访问github仓库权限的git托管服务器中的克隆后的url. 点击克隆.
在这里插入图片描述
在这里插入图片描述
输入自己在托管服务器上的账户信息, 点击登录.
在这里插入图片描述
IDEA右下角可以看到openpnp仓库克隆进度, 等待完成.

在这里插入图片描述
项目克隆到本地后, 在弹框中勾选项目, 点击信任项目.

在这里插入图片描述
选择在当前窗口打开项目.

在这里插入图片描述
工程刚打开时, EA右下角显示正在解析工程依赖项, 等待解析完成.
在这里插入图片描述
可以选择升级工程的依赖项, 我没选择升级.

在这里插入图片描述
工程刚引入时, JDK用的是环境变量JAVA_HOME中指定的那个最新的版本, 这个JDK版本不合适, 现在模拟第一次上手openpnp项目时的流程. 哪不合适就调整哪里, 直到工程正常使用.

openpnp文档中有提到, 必须通过所有测试用例, 才能提交代码到仓库.
既然这是个发布的git库版本, 作者们已经调试好了, 那我们先试试是否这个克隆来的工程能通过所有测试.
在这里插入图片描述
在工程节点上右击, 选择运行所有测试.
在这里插入图片描述
可以看到, 有很多测试错误.
看报错信息, 大概猜到是JDK版本不合适.
openpnp文档中有说明, JDK版本要15以下才行.
在这里插入图片描述
如果不是JDK15以下, 就需要调整代码.
现在在IDEA中添加JDK15
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择JDK版本为15, 在下拉列表中选择可用的JDK15版本.
在这里插入图片描述
IDEA右下角有进度提示, 等待提示完成.
这个速度有点慢, 我下载JDK15时, 等着可以完成(对于新手, 软件或操作慢点都不怕, 就怕操作中断了, 完不成). 如果完不成(网络原因), 可以自己下载JDK, 解压, 在IDEA中手工添加JDK版本. 这个下面再记录(因为这个JDK15也是不好使的)
等JDK15下载完.
指定工程使用的JDK为JDK15.
在这里插入图片描述
再次运行所有测试用例
在这里插入图片描述
虽然通过了所有测试, 但是拉动右边的输出信息, 可以看到工程中自带的opencv, 只能运行在JDK12以下.
现在将添加JDK12以下的版本.
在这里插入图片描述
可以看到IDEA中并没有JDK12的下载, 只能下载JDK11.
在这里插入图片描述
我选择的是Amazon Correto 11.0.17, 然后点击下载.
在这里插入图片描述
这个下载速度巨慢, 而且再苦苦等待后, 进度为98%时, 就下载失败了.
决定在IDEA中手工指定JDK11.
在官网找到了 Amazon Correto 11.0.17 的下载地址. https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/downloads-list.html
在这里插入图片描述
下载winx64, winx86的非安装版本到本地.
在这里插入图片描述
先用64位版本的JDK11试试, 解开 amazon-corretto-11-x64-windows-jdk
在这里插入图片描述
JDK11的路径位 E:\tools\java\amazon-corretto-11-x64-windows-jdk\jdk11.0.17_8
在IDEA中手工指定JDK11
在这里插入图片描述
在这里插入图片描述
点击确定,等待JDK11引入完成.
指定工程JDK版本位JDK11
在这里插入图片描述
再次运行所有测试
在这里插入图片描述
可以看到在JDK11下, 所有测试都通过了.
而且出现的唯一的一段警告, 出现在正式测试信息的顶部, 和工程无关.
看看这5句报警信息

WARNING: An illegal reflective access operation has occurred
// 发生了非法的反射访问操作
// 低版本JDK中允许反射访问, 高版本中不建议使用反射访问. 反射访问不安全, 不是错误.
// 这个是JDK本身的问题, 不是问题.

WARNING: Illegal reflective access by nu.pattern.OpenCV$SharedLoader (file:/C:/Users/chenx/.m2/repository/org/openpnp/opencv/4.5.1-2/opencv-4.5.1-2.jar) to field java.lang.ClassLoader.usr_paths
// 这个也是高版本JDK警告反射访问绕过了JDK正常的成员变量访问机制
// 这个是JDK本身的问题, 不是问题.

WARNING: Please consider reporting this to the maintainers of nu.pattern.OpenCV$SharedLoader
// 这句说, 将上述2个警告, 报告给opencv项目的维护者
// 这个不是问题.

WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
// 这句说 可以使用 --illegal-access=warn 选项, 进制对非法反射访问进行警告, 因为这只是不安全, 但是不是错误.
// 就像我们在高版本VS中使用旧式CRT库函数时, 也会有警告, 必须加上编译选项, 才不会对旧函数产生不安全的警告.
// 所以说, 这句也不是问题

WARNING: All illegal access operations will be denied in a future release
// 在未来的版本中,将拒绝所有非法访问操作
// JDK新版本中, 将不允许非法的反射访问.
// 这也不是问题.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

到此, 我们使用JDK11, 成功运行了openpnp项目的所有测试用例.

在IDEA中, 运行openpnp主程序

在这里插入图片描述
找到openpnp项目的main文件, 选择运行(如果要单步调试, 就选择调试)
在这里插入图片描述
可以看到openpnp跑起来了, 如果选择了中文语言, 程序的界面文字都变成中文了.

配置IntelliJ IDEA(可选)

在打开工程后, 才能设置工程选项
这个可选, 配置一下好些(e.g. 不需要自动编译), 不配置亦可.
记录一下改过的配置. 记录的不全, 如果需要其他的IDEA设置, 网上资料很多, 跟着设置就好.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

备注

在此实验基础上, 就可以学习和膜拜openpnp项目了.
工程结构等项目相关的知识点, 需要进一步看开发文档, wiki, git log.

END

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/623264
推荐阅读
相关标签
  

闽ICP备14008679号