jFinal打成jar包读取sql问题

                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

2019-11-22 15:28

不要搞这么麻烦, jar 包挪走后 class path 没相应配置好

邓小杰

2019-11-22 17:05

@JFinal 波哥 我有点没理解

chcode

2019-11-25 10:12

sql 放resource下面 也就是classpath 不可能读不到

邓小杰

2019-11-25 11:32

@chcode 直接跑可以读到 用fatjar打包后 读不到resources下的sql文件

热门反馈

扫码入社