当前位置: 代码迷 >> Web前端 >> 普通JAVA获取WEB项目上的WEB-INF目录
  详细解决方案

普通JAVA获取WEB项目上的WEB-INF目录

热度:450   发布时间:2012-10-11 10:16:10.0
普通JAVA获取WEB项目下的WEB-INF目录

? ? JAVA Web项目获取物理根目录绝对路径 ?

package com.path;

import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLDecoder;

/**
 * 普通JAVA获取   WEB项目下的WEB-INF目录
 * @author wang
 *
 */
public class PathUtil {
	public static void main(String[] args) {
		PathUtil pathUtil = new PathUtil();
		System.out.println("path=="+pathUtil.getWebInfPath());
	}
	
	private String getWebInfPath(){
		URL url = getClass().getProtectionDomain().getCodeSource().getLocation();
		String path = url.toString();
		int index = path.indexOf("WEB-INF");
		
		if(index == -1){
			index = path.indexOf("classes");
		}
		
		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;
	}
}

?

?

?

1 楼 勇-高 2012-05-12  
getWebInfPath()应该声明为public而不是private类型
2 楼 打了个D 2012-05-13  
勇-高 写道
getWebInfPath()应该声明为public而不是private类型

晕,你没看我这类里面有个main函数吗,只是写了个测试例子,代码都贴出来啦。你想调用,难道。。。你懂滴
  相关解决方案