新手制作网站工具,网站完整模板,微信公众号可以做几个微网站,下载软件的注意事项之前介绍过JRT最大的特点就是业务脚本化。老javaer就会说你业务代码都在发布环境放着#xff0c;那怎么代码保密#xff0c;在发布环境别人随便改了启不是不安全#xff0c;或者一些代码我就是不想让人看源码呢。
其实JRT的业务脚本化只是特性#xff0c;不是代表就必须要…之前介绍过JRT最大的特点就是业务脚本化。老javaer就会说你业务代码都在发布环境放着那怎么代码保密在发布环境别人随便改了启不是不安全或者一些代码我就是不想让人看源码呢。
其实JRT的业务脚本化只是特性不是代表就必须要放源码才能运行。能否运行和有没有源码是没有关系的。源码放着只是保证修改和维护的你可以为了修改维护方便放源码也可以为了安全或者不让随意改不放源码。
首先JRT提供一个编译所有业务代码的脚步浏览器访问就能编译所有业务脚本到jar当然如果你把所有后台都执行到也不用执行这个全编译脚本这个只是为了保证全。 调用脚本 有jar之后就可以删任意业务java代码了
删除代码之后不会影响程序执行这就是JRT的另一面特性
全编译脚本就是把所有的业务类都获取一遍
import JRT.Core.MultiPlatform.JRTContext;
import JRTBLLBase.BaseHttpHandlerNoSession;
import JRTBLLBase.GetBllObjService;import java.io.File;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;/*** 编译所有的业务类编译完成后可以删除业务的.java源码使用在有些时候不想让人看到发布的源码看*/
public class JRTBuild extends BaseHttpHandlerNoSession {/*** 扫描所有业务脚本编译使JRT的发布可以删除任何业务代码使用* return*/public String Do(){ListString exts new ArrayList();exts.add(java);//找到所有的代码文件ListFile files GetAllPerFileInfo(JRTContext.WebBasePath, exts, );int num0;//循环编译每个java代码for(File f:files){String compressedPath f.getAbsolutePath();//临时目录退出if (compressedPath.contains(AutoBuildTmp)) {continue;}//实体目录退出if (compressedPath.contains(CompileModel)) {continue;}//不编译自己if(f.getName().equals(JRTBuild.java)f.getParent().equals(jrtscript)){continue;}System.out.println(编译: f.getAbsolutePath());String confStr compressedPath.replace(JRTContext.WebBasePath, ).replace(\\, /).split(\\.)[0];try {num;GetBllObjService.GetObjectByConfString(confStr, null, , compressedPath);} catch (Exception ex) {ex.printStackTrace();}}return 编译完成,共编译:num个所有.java代码已经生成BinAshx可以删除任意业务.java运行;}/*** 得到目标文件** param directory* param extensionList* param regex* return*/private static ListFile GetAllPerFileInfo(String directory, ListString extensionList, String regex) {ListFile paths new ArrayList();File dir new File(directory);if (!dir.exists()) {// 目录不存在return paths;} else {SeeFile(new File(directory), extensionList, paths, regex);}return paths;}/*** 扫描文件** param dir 目录* param extensionList 后缀* param paths 路径* param regex 正则*/private static void SeeFile(File dir, ListString extensionList, ListFile paths, String regex) {File[] files dir.listFiles();if (files ! null) {for (File file : files) {if (file.isDirectory()) {SeeFile(file, extensionList, paths, regex);} else {if (regex ! null !regex.isEmpty()) {if (Pattern.matches(regex, file.getName())) {paths.add(file);}} else if (extensionList ! null) {String fileName file.getName();String fileExtension fileName.substring(fileName.lastIndexOf(.) 1).toLowerCase();if (extensionList.contains(fileExtension)) {paths.add(file);}} else {paths.add(file);}}}}}
}