top.cutexingluo.tools.utils.se.file.XTPathUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xingtools-extra Show documentation
Show all versions of xingtools-extra Show documentation
xingtools 依赖core,附加,也就是基于 SpringBoot 的一些工具或实体类
The newest version!
package top.cutexingluo.tools.utils.se.file;
import org.jetbrains.annotations.NotNull;
import org.springframework.boot.system.ApplicationHome;
import java.io.File;
/**
* Path 封装工具类
* 可以通过此工具类获取你的项目文件位置
* 于 1.1.1 版本 拆分 原XTPath为 XTPath 和 XTPathUtil
*
* @author XingTian
* @version 1.0.0
* @date 2024/7/12 16:03
* @since 1.1.1
*/
public class XTPathUtil extends XTPath{
//极力推荐用,后面发布会有用
//由于class文件根目录是classes
/**
* 利用Spring获取项目绝对路径
*
* @param clazz 目标类
* @return 项目地址
*/
@NotNull
public static String getProjectPath(Class> clazz) {
return getProjectPath(clazz, EnvType.PROD);
}
/**
* 利用Spring获取项目绝对路径
* PathType 代表环境
*
* @param clazz 目标类
* @return 项目地址
*/
@NotNull
public static String getProjectPath(Class> clazz, EnvType envType) {
ApplicationHome applicationHome = new ApplicationHome(clazz);
//classes -> target -> project path
//getParentFile().getParentFile().
File homeDir = applicationHome.getDir();
if (envType == EnvType.DEV) {
homeDir = homeDir.getParentFile().getParentFile();
}
return homeDir.getAbsolutePath();
}
/**
* 从字节码位置推测 ,
* 利用Spring获取源项目地址中java文件夹路径
*
* - 在 test , dev 环境下运行
* - 不要 prod 下使用该方法, 除非jar包在根目录下
*
*
* @param clazz 目标类
* @param envType 环境类型
* @return 项目地址
*/
@NotNull
public static String getProjectJavaPath(Class> clazz, EnvType envType) {
return getProjectPath(clazz, envType) + MAIN_PATH + SEPARATOR + "java";
}
/**
* 从字节码位置推测 ,
* 利用Spring获取源项目地址中resource文件夹路径
*
* - 在 test , dev 环境下运行
* - 不要 prod 下使用该方法
*
*
* @param clazz 目标类
* @param envType 环境类型
* @return 项目地址
*/
@NotNull
public static String getProjectResPath(Class> clazz, EnvType envType) {
return getProjectPath(clazz, envType) + MAIN_PATH + SEPARATOR + "resources";
}
/**
* 从字节码位置推测 java源文件的路径 (只是推测,慎用)
*
* - 在 test , dev 环境下运行
* - 不要 prod 下使用该方法
*
*
* @param clazz 目标类
* @return 目标类的 java 绝对路径
*/
@NotNull
public static String getTryJavaAbsolutePath(Class> clazz, EnvType envType) {
return getProjectJavaPath(clazz, envType) + SEPARATOR + packageToPath(clazz);
}
/**
* 从字节码位置推测 java源文件的路径 (包含文件名) (只是推测,慎用)
*
* - 在 test , dev 环境下运行
* - 不要 prod 下使用该方法
*
*
* @param clazz 目标类
* @return 目标类的 java 绝对路径
*/
@NotNull
public static String getTryJavaAbsolutePathWithName(Class> clazz, EnvType envType) {
return getTryJavaAbsolutePath(clazz, envType) + SEPARATOR + clazz.getSimpleName() + ".java";
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy