一个挺有用的获取tomcat项目路径的工具类



import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;
import java.util.StringTokenizer;

import org.omg.CORBA.Object;

public class Util {

	public Util() {
	}

	private static void byte2hex(byte b, StringBuffer buf) {
		char[] hexChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
				'A', 'B', 'C', 'D', 'E', 'F' };
		int high = ((b & 0xf0) >> 4);
		int low = (b & 0x0f);
		buf.append(hexChars[high]);
		buf.append(hexChars[low]);
	}

	public static String toHexStr(byte[] t, int start, int end) {
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < t.length; i++) {
			if (start <= i && end >= i) {
				if (t[i] != 0) {
					byte2hex(t[i], sb);
					sb.append(" ");
				}
			}
		}
		return sb.toString();
	}

	/**
	 * Splits the string on every token into an array of stack frames.
	 * 
	 * @param string
	 *            the string
	 * @param onToken
	 *            the token
	 * @return the resultant array //@deprecated This is an internal utility
	 *         method that should not be used
	 */
	public static String[] splitString(String string, String onToken) {
		if (string == null)
			return null;
		final StringTokenizer tokenizer = new StringTokenizer(string, onToken);
		final String[] result = new String[tokenizer.countTokens()];

		for (int i = 0; i < result.length; i++) {
			result[i] = tokenizer.nextToken();
		}

		return result;
	}

	public static String getWebModulPath() {
		String ret = getWebinfPath();
		int cnt = ret.indexOf("/WEB-INF");
		if (cnt > -1)
			ret = ret.substring(0, cnt);
		return ret;
	}

	private static String _webinfPath = null;

	public static String getWebinfPath() {
		if (_webinfPath == null) {
			String res = null;
			Util u = new Util();
			String classname = u.getClass().getName().replace('.', '/')
					+ ".class";
			ClassLoader cl = u.getClass().getClassLoader();
			if (cl != null) {
				java.net.URL url = cl.getResource(classname);
				if (url != null) {
					String path = url.getFile();
					int fileStrPosition = path.indexOf("file:/");
					int begin = 0;
					int end = path.length();

					if (fileStrPosition >= 0)
						begin = fileStrPosition + 5;

					// 先判断是否是未打包文件


					end = path.indexOf("classes/" + classname);
					if (end < 0) {
						// 如果是在webModule下面的jar包


						end = path.indexOf("lib/");
						if (end < 0) {
							// 在普通目录下的jar包


							int tmpend = path.indexOf("!/");
							end = path.substring(0, tmpend).lastIndexOf("/");
						}
					}
					String rf = path.substring(begin, end);
					res = new File(rf).getAbsolutePath().replace('\\', '/')
							+ "/";
				}
			}
			try {
				_webinfPath = java.net.URLDecoder.decode(res, "UTF-8");
			} catch (UnsupportedEncodingException ex) {
			}
			System.out.println("WEB-INF Path=" + _webinfPath);
		}
		return _webinfPath;
	}

	private static String _systemPath = null;

	public static String getSystemPath() {
		if (_systemPath == null) {
			String res = getWebinfPath();
			if (res.indexOf("WEB-INF/") > 0 && res.length() > 10) {
				res = res.substring(0, res.lastIndexOf("/", res.length() - 12))
						+ "/";
			}
			_systemPath = res;
			System.out.println("System Path=" + _systemPath);
		}
		return _systemPath;
	}
	
	public static boolean checkStr(String str){
		if(str!=null && !"".equals(str))
			return true;
		else
			return false;
	}
	
	public static boolean checkDate(Date date){
		if(date!=null && !date.toString().equals(""))
			return true;
		else
			return false;
	}
	
	public static boolean checkObj(Object obj){
		if(obj!=null && !obj.equals(""))
			return true;
		else
			return false;
	}
	
	public static void main(String [] args){
		System.out.println(getWebinfPath());
	}
	
	/**
	 * 获得能量等级
	 * 
	 * @param sex
	 * @param weight
	 * @param height
	 * @param age
	 * @return
	 */
	public static int energyDJ(int sex, float weight, float height, int age){
		int systarget = 0;
		if (sex == 1) {
			systarget =  FloatRigor.getIntNum(1.2f * (66 + 13.7f * weight + 5* height - 6.8f * age)*0.9f);
		} else {
			systarget = FloatRigor.getIntNum(1.2f * (655 + 9.6f * weight + 1.8f* height - 4.7f * age)*0.9f);
		}
		if (systarget < 1400)
			return 1200;
		else if (systarget < 1600)
			return 1400;
		else if (systarget < 1800)
			return 1600;
		else if (systarget < 2000)
			return 1800;
		else if (systarget < 2200)
			return 2000;
		else if (systarget < 2400)
			return 2200;
		else if (systarget < 2600)
			return 2400;
		else
			return 2600;
	}
	
	/**
	 * 返回Properties对象
	 * 
	 * @author xhx 2008-4-28
	 * @param filename
	 * @return
	 * @throws IOException
	 */
	public static Properties getProperties(String path) throws IOException {
		File file = new File(path);
		Properties p = new Properties();
		if (file.exists()) {
			FileInputStream input;
			input = new FileInputStream(path);
			p.load(input);
			return p;
		} else {
			return null;
		}
	}
	
}

主要方法执行结果如下:

Util.getSystemPath():D:/webspace/enterprise/
Util.getWebinfPath():D:/webspace/enterprise/WebRoot/WEB-INF/
Util.getWebModulPath():D:/webspace/enterprise/WebRoot


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值