openpnp - 调试环境搭建 - use eclipse for java - v2

文章目录

openpnp - 调试环境搭建 - use eclipse for java - v2

概述

为了学习openpnp工程,做了调试环境搭建的笔记(openpnp - 调试环境搭建 - use eclipse for java)

今天新导入了一次工程,有如下问题:

  • 工程编译不过
  • 偶然编译过了(不记得自己怎么配置的了),运行时,写machine.xml失败。

扑腾了一会,弄明白了,大概有5点要注意的地方。然后就可以正常编译,调试,或者运行。

记录一下。

笔记

调试环境

JDK

看openpnp工程的日志,用sourcetree搜索,可以看到,作者是用openjdk作为JDK, 而不是用其他版本的JDK.

https://adoptium.net/zh-CN/temurin/releases下载了所有的LTS版本。

都试了一下,最终选用的JDK为OpenJDK11U-jdk_x64_windows_hotspot_11.0.30_7.zip
JDK的版本只能用这个,否则openpnp工程编译不过。

eclipse

eclipse-java-2025-12-R-win32-x86_64 这个就是最近的版本,一直在用这个版本做实验。
启动eclipse时,要用管理员身份启动。否则操作文件时,可能权限不够。

要修改 .gitignore

用eclipse导入工程后,会在工程目录中留下配置文件。如果配置的不合适,当再次导入工程时,这些配置有副作用。如果配置的不合适,会导致工程编译不过。

将.gitignore改为空,这样任何原因导致的工程git目录的文件变化都可以用sourcetree看到。如果出现编译失败,运行失败,可以将无关的文件删掉,然后重新配置eclipse.

导入工程

eclipse启动时,要以管理员身份启动。

eclipse的工作区,最好选一个新的目录。

需要注意,如果要重新在eclipse中导入目录作为工程,要先用sourcetree确认工程目录中没有上次eclipse留下的东西(配置文件,工程文件等)

刚导入工程后,自动编译时,看到有错误。

先配置VM参数

bash 复制代码
--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
--add-opens java.base/java.lang.invoke=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED
--add-opens java.base/java.security=ALL-UNNAMED

指定JDK版本为11

必须指定这个版本!

bash 复制代码
D:\tools\java\OpenJDK11U-jdk_x64_windows_hotspot_11.0.30_7\jdk-11.0.30+7


此时,自动编译时,还是错的。工程编译不过。

指定java编译器版本为1.8


要注意上图中,有个"--release"选项不能勾选,否则工程编译不过。

现在工程就编译过了。

如果不放心,可以将工程clean一下,再自动编译一次。能确认工程是编译过的,且编译输出在工程targert目录下。

运行

运行菜单有些maven的选项,不要点。

直接选择"Run Configurations"

如果VM参数没配置,就配置一下

bash 复制代码
--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
--add-opens java.base/java.lang.invoke=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED
--add-opens java.base/java.security=ALL-UNNAMED

在运行之前,先去用户目录中,将.openpnp2删掉,看看运行起来后,权限够不够?


运行起来是正常的,且将.openpnp2目录中的内容都新建好了。

单元测试

以前用IDEA学习openpnp时,可以右击工程节点,进行"运行所有测试", 这个测试是用maven配置指定的。

在eclipse中也有对应操作。

备注

上述方法只适合openpnp2.0的工程

对于openpnp1.x的工程不好使。

如果想学openpnp1.x的工程,得用IDEA从.git克隆才行。主要是依赖和语法(有些库在JDK11时已经移除了)的不同。

eclipse配起1.0的工程来对于新手来说有点难。也许从.git, 用eclipse导入也行(会自动将依赖都用maven配置好),不过没试。太费劲了。

备注

现在的新版是openpnp2.4, 离openpnp2.0有1年的维护时间。

bash 复制代码
git rev-list 2.0..2.4 --count
730

2.0到2.4版本之间,有730个提交。可以选一部分来看。

如果学习一个开源工程,选一个离最新版维护时间合适的地方(有一定提交数量)开始学习比较好.不光可以看软件的架构(对于一个完整快照工程(e.g. 发行版tag),可以检验自己是否可以理解和维护这个工程(想看啥功能的实现,就能从代码中直接准确找到,而不是用搜索大法去遍地找)),也可以通过一定数量的提交,看软件的进化。通过这些进化的步骤,可以检验自己是否能跟的上作者的思路。

能达到这2点,学习开源工程的初步目的就达到了。

如果是看懂工程之后,想测试一下自己的想法,就在开源工程克隆到本地的副本上开本地分支(e.g. tag2.0 => my2d0),然后试着改就行。

如果可以的话,就可以按照这个思路,用其他语言(e.g. QT + opencv(用c++来做工具软件,授权部分比较好控制))来做自己的工具软件了。

END

相关推荐
LostSpeed5 天前
openpnp - python2.7 script - 中文显示乱码,只能显示英文
python·openpnp
LostSpeed2 个月前
openpnp - Smoothieware - LPC17xx-DFU-Bootloader - 固件调试环境搭建
openpnp
LostSpeed2 个月前
openpnp - Smoothieware - MKS SGEN_L V1.0 + JLink-edu-mini 连接测试
openpnp·jlink·mks·smoothieware
LostSpeed2 个月前
openpnp - 相机模组调焦时,图像中心轴(光轴)的角度会发生轻微变化
openpnp
LostSpeed3 个月前
openpnp - 吸嘴的单独校准
openpnp
LostSpeed3 个月前
openpnp - 坐标系统只有一个
openpnp
LostSpeed3 个月前
openpnp - 如果出现不正常的情况,需要将设备和主板重新上电
openpnp
LostSpeed6 个月前
openpnp - 不连接设备,只大概测试一下摄像头是否好使
openpnp
LostSpeed1 年前
openpnp - 在openpnp中单独测试相机
openpnp