备案 个人网站名称,万网网站开发,wordpress的总结,wordpress 扩展文章目录 openpnp2.2 - 环境搭建 - 编译 调试 打包概述笔记前置任务克隆代码库切到最新的tag清理干净编译工程关掉旧工程打开已经克隆好的openpnp2.2工程将IDEA的SDK配置为openjdk23 切换中英文UI设置JAVA编译器 构建工程跑测试用例单步调试下断点导出工程的JAR包安装install… 文章目录 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 - 软件调试环境搭建 将基本环境搭好。
克隆代码库
gitgithub.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