arp.getEngine().setBaseTemplatePath("/sql"); arp.getEngine().setToClassPathSourceFactory(); String sqlPath = PathKit.getRootClassPath(); List<File> files = getFileList(sqlPath); if(files.size()==0){ arp.getEngine().setSourceFactory(new FileSourceFactory()); sqlPath = PathKit.getRootClassPath(); Log2FinalKit.info("文件路径。。。"+sqlPath.replace("config", "")); files = getFileList(sqlPath.replace("config", "")); } Log2FinalKit.info("文件大小。。。"+files.size()); for (File f : files) { Log2FinalKit.info("文件名称。。。"+f.getName()); arp.addSqlTemplate(f.getName()); } Engine engine = arp.getEngine(); engine.setToClassPathSourceFactory(); ActiveRecordMapping arm = new ActiveRecordMapping(); arm.mapping(dbSource, arp); /** * 获取当前文件夹下的所有.sql结尾的文件 */ private final List<File> getFileList(String strPath) { File dir = new File(strPath); // 该文件目录下文件全部放入数组 File[] files = dir.listFiles(); if (null == files) { return RESULTFILE; } else { for (int i = 0; i < files.length; i++) { if (files[i].isDirectory()) { getFileList(files[i].getAbsolutePath()); } else if (files[i].getName().endsWith("sql")) { RESULTFILE.add(files[i]); } else { continue; } } } return RESULTFILE; }
波哥,这个方法打成jar包可以在当前项目下D:\JavaEE\DubboWorkspaces\examsys-web\target下读取sql文件 但是我把jar包挪到另一个盘符就读不了jar下的sql文件
项目:JFinal