如何使用包扫描工具获取Java项目中所有路径?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1097个文字,预计阅读时间需要5分钟。
javapackage com.amiu.util;
import java.io.File;import java.io.IOException;import java.io.InputStream;import java.net.URL;import java.util.Properties;
public class PathUtil { /** * 获取项目根路径 */ public static String getProjectRoot() { URL url=PathUtil.class.getClassLoader().getResource(); if (url !=null) { return url.getPath(); } return null; }}
1、路径工具package com.amiu.util; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.Properties; public class PathUtil { /** * 获取项目根路径 */ public static String getProjectPath() throws IOException { File directory = new File(""); String projectPath = directory.getCanonicalPath(); return projectPath; } /** * 获取包绝对(编译)路径,packageName为空或空字符串则获取项目(编译)绝对路径 */ public static String getPackagePath(String packageName) { ClassLoader loader = Thread.currentThread().getContextClassLoader(); String filePath = ""; if (packageName != null && packageName.length() > 0) filePath = packageName.replace(".", "/"); URL url = loader.getResource(filePath); return url.getPath(); } /** * 获取类的绝对(编译)路径 */ public static String getClassPath(Class clazz) { String path = "/"+getPackageName(clazz).replace('.', '/'); return clazz.getResource(path).getFile().toString();// .getFile().toString(); } /** * 获取当前类所在的包 */ public static String getPackageName(Class clazz) { return clazz.getPackage().getName(); } // 读取“classpath:”文件,获取输入流 public static InputStream getClasspathInputStream(String fileName) throws IOException { if (fileName.startsWith("classpath:")) fileName = fileName.replaceFirst("classpath:", "").trim(); InputStream is = PathUtil.class.getClassLoader().getResourceAsStream(fileName); return is; } public static void main(String[] args) throws IOException { //获取项目根路径 System.out.println(PathUtil.getProjectPath()); //获取项目WEB-INF路径 System.out.println(PathUtil.getProjectPath()+"src\\main\\webapp\\WEB-INF"); //获取com包路径(编译路径,我们的.class存放的路径) System.out.println(PathUtil.getPackagePath("com")); //获取类PathUtil的编译路径 System.out.println(PathUtil.getClassPath(PathUtil.class)); //获取PathUtil所在包 System.out.println(PathUtil.getPackageName(PathUtil.class)); } } 2、包扫描
package com.amiu.util;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import org.junit.Assert;
public class PackageUtil {
/**
* 获取某包下(包括该包的所有子包)所有类
*
* @param packageName
* 包名
* @return 类的完整名称
* @throws IOException
*/
public static List
本文共计1097个文字,预计阅读时间需要5分钟。
javapackage com.amiu.util;
import java.io.File;import java.io.IOException;import java.io.InputStream;import java.net.URL;import java.util.Properties;
public class PathUtil { /** * 获取项目根路径 */ public static String getProjectRoot() { URL url=PathUtil.class.getClassLoader().getResource(); if (url !=null) { return url.getPath(); } return null; }}
1、路径工具package com.amiu.util; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.Properties; public class PathUtil { /** * 获取项目根路径 */ public static String getProjectPath() throws IOException { File directory = new File(""); String projectPath = directory.getCanonicalPath(); return projectPath; } /** * 获取包绝对(编译)路径,packageName为空或空字符串则获取项目(编译)绝对路径 */ public static String getPackagePath(String packageName) { ClassLoader loader = Thread.currentThread().getContextClassLoader(); String filePath = ""; if (packageName != null && packageName.length() > 0) filePath = packageName.replace(".", "/"); URL url = loader.getResource(filePath); return url.getPath(); } /** * 获取类的绝对(编译)路径 */ public static String getClassPath(Class clazz) { String path = "/"+getPackageName(clazz).replace('.', '/'); return clazz.getResource(path).getFile().toString();// .getFile().toString(); } /** * 获取当前类所在的包 */ public static String getPackageName(Class clazz) { return clazz.getPackage().getName(); } // 读取“classpath:”文件,获取输入流 public static InputStream getClasspathInputStream(String fileName) throws IOException { if (fileName.startsWith("classpath:")) fileName = fileName.replaceFirst("classpath:", "").trim(); InputStream is = PathUtil.class.getClassLoader().getResourceAsStream(fileName); return is; } public static void main(String[] args) throws IOException { //获取项目根路径 System.out.println(PathUtil.getProjectPath()); //获取项目WEB-INF路径 System.out.println(PathUtil.getProjectPath()+"src\\main\\webapp\\WEB-INF"); //获取com包路径(编译路径,我们的.class存放的路径) System.out.println(PathUtil.getPackagePath("com")); //获取类PathUtil的编译路径 System.out.println(PathUtil.getClassPath(PathUtil.class)); //获取PathUtil所在包 System.out.println(PathUtil.getPackageName(PathUtil.class)); } } 2、包扫描
package com.amiu.util;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import org.junit.Assert;
public class PackageUtil {
/**
* 获取某包下(包括该包的所有子包)所有类
*
* @param packageName
* 包名
* @return 类的完整名称
* @throws IOException
*/
public static List

