当前位置: 首页 > news >正文

openpnp2.2 - 环境搭建 - 编译 + 调试 + 打包

文章目录

    • openpnp2.2 - 环境搭建 - 编译 + 调试 + 打包
    • 概述
    • 笔记
    • 前置任务
    • 克隆代码库
    • 切到最新的tag
    • 清理干净
    • 编译工程
      • 关掉旧工程
      • 打开已经克隆好的openpnp2.2工程
      • 将IDEA的SDK配置为openjdk23
    • 切换中英文UI
      • 设置JAVA编译器
    • 构建工程
    • 跑测试用例
      • 单步调试下断点
      • 导出工程的JAR包
      • 安装install4j
        • 配置打包要用的到JRE
        • 制作openpnp2.2需要的JRE包
      • 打开install4j工程,检查选项
        • 在file中加入.jar包
        • 在launchers中,指定.jar包和主类
        • 手工选择自己打好的JRE包
      • 打包
        • 运行安装好的openpnp, 看是否正常?
    • 最好弄个完整的install4j安装版
    • END

openpnp2.2 - 环境搭建 - 编译 + 调试 + 打包

概述

openpnp升级了,当前版本2.2.
以前不会打包,只能将需要的class和jar包都收集起来用,模拟IDEA的调试环境。
虽然弄的openpnp散装的打包能用,但是看着好低级,好土。

这次看了一下官方文档,现在代码编译环境和打包都比以前友好。
试了一下,编译打包都成功。

笔记

前置任务

如果环境不在了,按照以前的笔记 openpnp - 软件调试环境搭建 将基本环境搭好。

克隆代码库

git@github.com:openpnp/openpnp.git
迁出到本地 D:\3rd\openpnp_prj\openpnp-official\openpnp

切到最新的tag

当前tag是2.2,切过去,建立一个分支
在这里插入图片描述
在这里插入图片描述

清理干净

我前面做过试验了,如果还用这个目录做试验,要clean掉未归档的文件,将变动过的文件用revert恢复到2.2tag的原始状态。

编译工程

IDEA版本为 2023.2.4

关掉旧工程

打开IDEA, 如果当前有别的工程,先将工程关了。
在这里插入图片描述

在这里插入图片描述

打开已经克隆好的openpnp2.2工程

此工程已经切到了2.2的tag
如果项目在IDEA的列表中,直接点击就打开了。
在这里插入图片描述
如果怕弄错了,将最近的项目从IDEA开始界面移除
在这里插入图片描述

如果是新位置的项目,就直接用IDEA打开项目的文件夹就行,应该是当作maven项目打开了。
在这里插入图片描述
在这里插入图片描述
打开工程后,如果是第一次用IDEA打开刚克隆好的库,会分析依赖库啥的,等右下角提示消失。
在这里插入图片描述

将IDEA的SDK配置为openjdk23

在这里插入图片描述

在这里插入图片描述
我现在用的是 openjdk-23.0.2_windows-x64_bin.zip => D:\tools\java\openjdk-23.0.2_windows-x64_bin\jdk-23.0.2

在这里插入图片描述
如果已经有了openjdk23, 就选为当前SDK.
如果是第一次换SDK, 就点击"添加SDK", 指到从install4j处偷来备份解压的openjdk23的目录就行。
点击确定,退出设置框。
重新编译工程,跑测试用例,这时,就没有任何红色的警告了。

切换中英文UI

如果操作IDEA时,和找到的资料对不上,可以随时切换中英文(需要重启IDEA).
在这里插入图片描述

设置JAVA编译器

如果编译时找不到java.exe, 将SDK重新删掉,再加一遍SDK就好了(我用的是自动侦测到的SDK, 实际就是我指定的那个SDK)
不需要在win10环境变量中配置JAVA_HOME那3个全局环境变量。
在这里插入图片描述

构建工程

在这里插入图片描述

跑测试用例

在这里插入图片描述
应该是都能编译测试过。
如果看到红色警告,先不管,这是因为没有用官方指定的openjdk23的最新版本引起的。后面换了就好了。

单步调试下断点

在这里插入图片描述

在这里插入图片描述
在main函数和自己关心的底层实现函数代码行处下断点,再点击单步运行就可以了,等断点命中,就可以开始学习了。

导出工程的JAR包

导出JAR包前,需要保证工程全部编译通过,全部测试都跑通。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将依赖都加入输出
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
如果只是为了打包,现在就可以关掉IDEA了。

安装install4j

install4j需要的最小版本为10.0.5.
从网上能找到的install4j学习版本都是试用版,即使输入了正确的序列号,打好包的程序也会弹框(“试用版…”).
可以从官方下载最新的install4j-v10.0.9, 这时install4j 10.x的最后一个版本, 然后用注册机产生序列号,虽然还是试用版,但是不影响打包的步骤。

配置打包要用的到JRE

拿openpnp2.2来举例。
openpnp2.2需要openjdk23的最新版本。
下载地址 https://jdk.java.net/23/
在这里插入图片描述
下载之后为 openjdk-23.0.2_windows-x64_bin.zip
解压开,释放到 D:\tools\java\openjdk-23.0.2_windows-x64_bin

制作openpnp2.2需要的JRE包

如果不自己下载JDK包,自己做JRE包。
让install4j没找到IRE包之后,去下载去自动做JRE包,时间很长。如果要用install4j给不同的工程打包,时间浪费严重。
且install4j自己去找的openjdk并不是官方的版本,有时从远程下载的列表中并没有最新的JDK版本。
且网络通讯质量不受控,让install4j从远程下载指定版本可能会失败。

打开install4j-10.0.9
在这里插入图片描述
在这里插入图片描述
JDK路径选为 D:\tools\java\openjdk-23.0.2_windows-x64_bin\jdk-23.0.2,就是自己下载解压的那个目录
在这里插入图片描述
在这里插入图片描述
这里的参数都不用改,最后生成的IRE包会给出路径名称。
在这里插入图片描述
模块要编辑一下,选择全部模块。
在这里插入图片描述
然后等IRE包制作完,默认的生成路径在APPDATA目录下。

C:\Users\me\AppData\Local\install4j\v10\jres\windows-amd64-23.0.2.tar.gz

打开install4j工程,检查选项

在这里插入图片描述

openpnp2给出的打包工程,也许jia包名称和JRE包都和自己的环境不同。需要检查。
openpnp2的install4j工程文件位置 => D:\3rd\openpnp_prj\openpnp-official\openpnp\OpenPnP.install4j

在file中加入.jar包

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
保存工程后,新加入的文件就变成了相对路径(相对工程的路径)。

在这里插入图片描述

在launchers中,指定.jar包和主类

这步是指定启动的类, e.g. jar包中的main(), 否则打包后会找不到主类报错。
在这里插入图片描述
openpnp工程一直将jar包命名为openpnp-gui-0.0.1-alpha-SNAPSHOT.jar, 好奇怪。
编辑这个项,换成我们刚作好的openpnp-gui.jar.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

手工选择自己打好的JRE包

我用的JDK是win64的,我也只打一种win64的包。
打包时,要选前面打好的JRE包,否则运行时缺依赖
在这里插入图片描述
选择我们已经打好的JRE包.
在这里插入图片描述
在这里插入图片描述

打包

只编译winx64版本。
在这里插入图片描述

在这里插入图片描述
编译中出了2个警告,是install4j的问题,不是打包有问题。
看到打包后的exe大小,有418MB. 依赖应该打全了。

打包成功了,去打包发布目录中看一下。
在这里插入图片描述

将打包好的程序安装过程试一下,成功的。
在这里插入图片描述
安装程序有评估版提示,这是因为没有授权,用的install4j试用版的缘故,不管。如果有需求,就买license(7000RMB).
默认安装后的路径为 C:\Program Files\openpnp
我这里为了做实验,装到了新目录 C:\Program Files\openpnp2
在这里插入图片描述

如果有旧版配置文件,自己先删除一下那个旧配置目录
在这里插入图片描述

运行安装好的openpnp, 看是否正常?

在这里插入图片描述
在这里插入图片描述

可以正常跑起来了,说明编译打包都成功。

最好弄个完整的install4j安装版

在这里插入图片描述
install4j弄的真黑,试用版打包出来的exe也有弹框。
将工具本身搞个neg窗口提醒用户买东西就行了。为啥要将做好的安装程序和安装好的程序加neg窗口?
这可是动了用户本身的东西啊,算不算侵犯用户隐私啊. 有点招人恨啊。

做学习版注册机的大神,应该不是经常用install4j的用户。否则他不可能留着那2个neg弹窗。技术流的大神注意不到这个。
现在网上好多学习版的注册机, 都是将注册码算法搞定,就完事了。其实有可能被作者骗了。
e.g. install4j, 不知道花钱的用户是有另外的正版软件下载链接;还是程序是一个,但是有暗桩。
假设程序是一个,那么注册机的作者就是被软件作者耍了。有可能注册码判断到了报错弹窗的后面,还有判断逻辑。或者到了做exe时,又有对注册码的详细判断。

这个程序没壳的,可以用IDA和IDEA的JarEditor插件相结合,调试修改所有的本地程序的反汇编和JAVA的类实现,且能回写。
如果有刚需,只要花时间弄清改在哪里改,不存在改不动的问题。

看了安装程序.exe和包装好的java启动.exe, 都是在winMain处简单的neg弹窗。但是具体jinstall4j实现在哪里加的这2句代码,如果有刚需确实可以找一下。

END

http://www.lryc.cn/news/533007.html

相关文章:

  • OpenCV:图像修复
  • QT全局所有QSS样式实时切换
  • MySQL三大版本的演进
  • 利用 IMU 估计人体关节轴向和位置 —— 论文推导
  • 脚本一键生成管理下游k8s集群的kubeconfig
  • 数据库系统概念第六版记录 三
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-files.py
  • 微信小程序案例1——制作猫眼电影底部标签导航栏
  • 【大数据技术】搭建完全分布式高可用大数据集群(Kafka)
  • 【服务器知识】如何在linux系统上搭建一个nfs
  • 图片画质增强:轻松提升画质
  • vscode快速接入deepseek 实践操作
  • mapbox进阶,添加绘图扩展插件,绘制圆形
  • Cursor 与多语言开发:全栈开发的利器
  • 2025 CCF BDCI|“基于TPU平台的OCR模型性能优化”一等奖作品
  • FPGA的IP核接口引脚含义-快解
  • 数据库高安全—审计追踪:传统审计统一审计
  • 机器学习 - 需要了解的条件概率、高斯分布、似然函数
  • Spring Boot Web 入门
  • 神经网络|(八)概率论基础知识-二项分布及python仿真
  • 【面试场景】MySQL分布式主键选取
  • 执行git stash drop stash@{x} 时出现error: unknown switch `e‘ 的解决方式
  • 链表和 list
  • windows 蓝牙驱动开发-传输总线驱动程序常见问题
  • Qt修仙之路2-1 炼丹初成
  • 【含开题报告+文档+PPT+源码】基于SpringBoot+Vue宠物预约上门服务预约平台
  • 无线AP之详解(Detailed Explanation of Wireless AP)
  • Spring Boot Actuator与JMX集成实战
  • mac环境下,ollama+deepseek+cherry studio+chatbox本地部署
  • camera光心检测算法