Java BCE方式常见问题
1.Java-BCE操作的时候设置密码的作用?
答:这里的密码设置如果是一样的话那么sjt就是一样的,如果没有设置,这里的密码每次都是随机的。
例如: 有多个jar包要保护,可以设置其中一个jar包的密码,然后复用于其他文件夹,密码是一样的,保护后java_protected文件里面sjt_agent.jar 都可以通用
2.Java-BCE方式加密完生成两个jar包,那怎么做成镜像?
答:修改docker的运行方式,一般是在dockerfile里改,启动执行的命令时加上-javaagent,指定sjt_agent.jar就可以。
3.Java如果不是tomcat部署的话,如何进行配置?
答:在它启动java的时候加上agent参数配置就可以了,需要找到设置java启动参数的地方,参考Java BCE方式保护后sjt_agent.jar的配置场景文档。
4.如何判断是否是加密后的文件?
答:可以使用jd-gui工具或jadx工具反编译jar包,查看保护后的效果。
5.java bce不支持的框架有哪些?
答:java bce方式,自定义 class loader 都不支持。modelmapper、struts2、jacoco、groovy等框架直接读文件,是自己实现的classloader,所以不支持。
6.javafx框架支持么?
答:java bce方式支持。
7.涉密系统使用java bce方式,程序运行时报错提示`/tmp/sjt_linux_x64.so*sense: failed to map segment from shared object`时,该怎么处理?**
答:由于涉密系统有权限限制,程序运行时sjt_agent.jar中的库可能会无法释放到tmp目录下或是释放到tmp目录下后无权限执行,此时需要修改下运行方式,不指定javaagent而指定agentpath参数,如下所示:
1.解压sjt_agent.jar包;2.在sjt_agent\libs目录下找到对应系统的库,比如sjt_linux_x64.so(可根据程序运行时的错误提示查找);3.将sjt_linux_x64.so放到自己所需要的位置;4.指定参数,运行程序,如 java -agentpath:<dir>/sjt_linux_x64.so -jar xxx.jar。