前言
加密java程序时会先对运行环境做加密,如果加密错依赖项,会导致加密后的程序无法正常运行, 本文档主要演示如何在Linux及windows系统下,java程序在运行时定位依赖的环境,在做加密时对该环境做加密再对java程序(class 或者jar包加密),保证加密后的程序能正常的运行.
Windows系统查找依赖性
温馨提示: 下述没有涉及到的项目场景,务必请先运行源项目,确保项目能正常运行,通过Windows任务管理器>进程,查看项目依赖的是java.exe 还是tomcat.exe 或者是tomcatw.exe 依赖哪一个,请跟进到原目录里, 对该exe做加壳操作.
一、B/s 架构程序
编译并运行源程序,先运行自己的源程序,确保能正常的运行.
1. 通过startup.bat启动服务
War包放在webapps目录下

启动startup.bat

服务正常启动

项目正常运行

启动任务管理器>进程 查看依赖项

依赖的是java.exe 鼠标右键打开位置 进入到jdk/bin目录 对此java.exe做加壳

2.通过windows系统服务启动
通过服务启动tomcat(我注册的名字是tomcat-8.5,需要查找一下自己注册的名字是什么, 有可能是apache-tomcat)

服务正常启动后,项目能正常运行

启动任务管理器>进程 查看依赖项

3.通过tomcat8w.exe启动服务
通过tomcat8w.exe正常启动服务

启动任务管理器>进程 查看依赖项

二、 C/S 架构
通过exe4j打包jar包生成exe
不需要运行项目查找依赖项,直接对exe做加壳操作.
三、Spring Boot 框架
确保项目能正常启动

启动任务管理器>进程 查看依赖项

Linux 系统查找依赖性
编译并运行源程序确保能正常的运行
通过startup.sh启动服务

服务正常启动后,项目能正常运行时,通过netstat -ntlp命令查看,java和jsvc.exec被占用,说明这个项目依赖了jdk目录下的java文件和tomcat目录里的jsvc文件 需要对这两个文件做加密.

Spring Boot框架
确保项目能正常启动

查看jdk的安装路径

找到jdk目录bin目录里的java文件对其加密

温馨提示: 如果有jdk和jre目录,加密后的java文件需要替换 jdk/bin/java 及 jdk/jre/bin/java 两个目录下的java文件,如果只有jre目录,只替换jdk/jre/bin/java文件即可