前阵子公司安排去另一个项目组帮忙,其中用到了FCKeditor。FCKeditor我们都知道,是一款不错的上传下载的插件,由于刚刚接触FCKeditor,而且之前开发人员由于一些原因离职,所以我开始慢慢的探索FCKeditor。其中要求FCKeditor的文件存储目录随着项目变化而变化,即不是写死为一个固定硬盘路径。可悲的我连路径也找不到,到了最后终于找到了,却不知道怎么改。于是自己参考网上一个例子,整理了一个java类获取WebRoot目录方法,供大家使用。
public String getWebInfPath(String index4Str) { URL url = getClass().getProtectionDomain().getCodeSource() .getLocation(); String path = url.toString(); int index = path.indexOf(index4Str); if (index == -1) { index = path.indexOf("WEB-INF"); } if (index == -1) { index = path.indexOf("bin"); } path = path.substring(0, index); if (path.startsWith("zip")) {// 当class文件在war中时,此时返回zip:D:/...这样的路径 path = path.substring(4); } else if (path.startsWith("file")) {// 当class文件在class文件中时,此时返回file:/D:/...这样的路径 path = path.substring(6); } else if (path.startsWith("jar")) {// 当class文件在jar文件里面时,此时返回jar:file:/D:/...这样的路径 path = path.substring(10); } try { path = URLDecoder.decode(path, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return path; }