在程中我们常取一些资源的绝对径,下面给出一个简单方便的工具类来帮助我们轻松的找到我想的资源。(适用于CS/BS应用) import java.io.File; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; /** *//** * @author <a href="mailto:maryang@live.cn" mce_href="mailto:maryang@live.cn">Maryang</a> * @version $Revision: 1.0 $ * 这个类提供了一些根据类的class文件位置来定位的方法。 */ public class PathUtil { /** *//** * 获取一个Class的绝对路径 * @param clazz Class对象 * @return Class的绝对路径 */ public static String getPathByClass(Class clazz){ String path = null; try { URI uri = clazz.getResource("").toURI(); File file = new File(uri); path = file.getCanonicalPath(); } catch (URISyntaxException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return path; } /** *//** * 获取一个文件相对于一个Class相对的绝对路径 * @param clazz Class对象 * @param relativePath Class对象的相对路径 * @return 文件绝对路径 */ public static String getFilePathByClass(Class clazz,String relativePath){ String filePath = null; String clazzPath = getPathByClass(clazz); StringBuffer sbPath = new StringBuffer(clazzPath); sbPath.append(File.separator); sbPath.append(relativePath); File file = new File(sbPath.toString()); try { filePath = file.getCanonicalPath(); } catch (IOException e) { e.printStackTrace(); } return filePath; } public static void main(String[] args) { try { System.out.println(getPathByClass(PathUtil.class)); System.out.println(getFilePathByClass(PathUtil.class,"../../images/logo.gif")); } catch (Exception e) { e.printStackTrace(); } } }