Пример #1
0
  /**
   * @paramargs
   * @throwsMalformedURLException
   */
  public static void main(String[] args) throws MalformedURLException {

    // ClassLoaderUtil.getExtendResource("../spring/dao.xml");
    // ClassLoaderUtil.getExtendResource("../../../src/log4j.properties");
    ClassLoaderUtil.getExtendResource("log4j.properties");

    System.out.println(ClassLoaderUtil.getClassLoader().getResource("log4j.properties").toString());
  }
Пример #2
0
  /**
   * 提供相对于classpath的资源路径,返回文件的输入流
   *
   * @paramrelativePath必须传递资源的相对路径。是相对于classpath的路径。如果需要查找classpath外部的资源,需要使用../来查找
   * @return 文件输入流
   * @throwsIOException
   * @throwsMalformedURLException
   */
  public static InputStream getStream(String relativePath)
      throws MalformedURLException, IOException {
    if (!relativePath.contains("../")) {
      return getClassLoader().getResourceAsStream(relativePath);

    } else {
      return ClassLoaderUtil.getStreamByExtendResource(relativePath);
    }
  }
Пример #3
0
  /**
   * @paramrelativePath 必须传递资源的相对路径。是相对于classpath的路径。如果需要查找classpath外部的资源,需要使用../来查找
   * @return资源的绝对URL
   * @throwsMalformedURLException
   */
  public static URL getExtendResource(String relativePath) throws MalformedURLException {

    ClassLoaderUtil.log.info("传入的相对路径:" + relativePath);
    // ClassLoaderUtil.log.info(Integer.valueOf(relativePath.indexOf("../"))) ;
    if (!relativePath.contains("../")) {
      return ClassLoaderUtil.getResource(relativePath);
    }
    String classPathAbsolutePath = ClassLoaderUtil.getAbsolutePathOfClassLoaderClassPath();
    if (relativePath.substring(0, 1).equals("/")) {
      relativePath = relativePath.substring(1);
    }
    ClassLoaderUtil.log.info(Integer.valueOf(relativePath.lastIndexOf("../")));

    String wildcardString = relativePath.substring(0, relativePath.lastIndexOf("../") + 3);
    relativePath = relativePath.substring(relativePath.lastIndexOf("../") + 3);
    int containSum = ClassLoaderUtil.containSum(wildcardString, "../");
    classPathAbsolutePath = ClassLoaderUtil.cutLastString(classPathAbsolutePath, "/", containSum);
    String resourceAbsolutePath = classPathAbsolutePath + relativePath;
    ClassLoaderUtil.log.info("绝对路径:" + resourceAbsolutePath);
    URL resourceAbsoluteURL = new URL(resourceAbsolutePath);
    return resourceAbsoluteURL;
  }
Пример #4
0
 /**
  * @paramrelativePath必须传递资源的相对路径。是相对于classpath的路径。如果需要查找classpath外部的资源,需要使用../来查找
  * @return
  * @throwsMalformedURLException
  * @throwsIOException
  */
 public static InputStream getStreamByExtendResource(String relativePath)
     throws MalformedURLException, IOException {
   return ClassLoaderUtil.getStream(ClassLoaderUtil.getExtendResource(relativePath));
 }
Пример #5
0
 /**
  * @paramresource
  * @return
  */
 public static URL getResource(String resource) {
   ClassLoaderUtil.log.info("传入的相对于classpath的路径:" + resource);
   return ClassLoaderUtil.getClassLoader().getResource(resource);
 }
Пример #6
0
  /**
   * 得到本Class所在的ClassLoader的Classpat的绝对路径。 URL形式的
   *
   * @return
   */
  public static String getAbsolutePathOfClassLoaderClassPath() {

    ClassLoaderUtil.log.info(ClassLoaderUtil.getClassLoader().getResource("").toString());
    return ClassLoaderUtil.getClassLoader().getResource("").toString();
  }