这一次我把它打包成jar包,方便随时导入使用。
新代码工程目录:
文件路径类FilePath.java:
package filepath;
import java.io.File;
public class FilePath
{
//当前的工程下的路径
public static String getProjectPath()
{
return System.getProperty("user.dir").toString()+"\\";
}
//编译之后src下的文件路径,根据工程路径拼接
public static String getSrcPath()
{
return System.getProperty("user.dir").toString()+"\\bin\\";
}
//根据反射获取编译之后的src下面的文件路径
public static String getSrcPath(Class<?> class1)
{
String path = class1.getClassLoader().getResource("").toString();
// System.out.println("编译后src路径:"+path);//file:/D:/dev/workspase2Spring/XMLreader/bin/
int m = path.indexOf("/");// file:/<----点位到file:后面的反斜杠
path = path.substring(m + 1);// 从反斜杠之后的一位开始截取字符串
// System.out.println("编译后src路径:"+path);
return path;
}
//根据反射获取编译之后包下面的文件路径
public static String getPackagePath(Class<?> class1)
{
//获取包路径
String thisPackagePath=class1.getResource("").toString();
// System.out.println("路径:"+thisPackagePath);
int m=thisPackagePath.indexOf("/");//去掉前面的file:
thisPackagePath=thisPackagePath.substring(m+1);
// System.out.println("路径:"+thisPackagePath);
return thisPackagePath;//返回当前包返回的路径。
}
public static String getProjectPath(Class<?> class1)
{
//获取src路径
String path = class1.getClassLoader().getResource("").toString();
// System.out.println("编译后src路径:"+path);//file:/D:/dev/workspase2Spring/XMLreader/bin/
//文件定位到src路径
File file=new File(path);//定位到这个目录下面
path=file.getParent();//返回src路径的父路径,也就是工程路径
// 结果 path=file:\D:\dev\workspase4javaBasis\FilePath
int m = path.indexOf("\\");// file:\<----点位到file:后面的反斜杠
path = path.substring(m + 1);// 从反斜杠之后的一位开始截取字符串
// System.out.println("编译后src路径:"+path);
return path;
}
// public static void main(String[] args)
// {
//System.out.println(FilePath.getProjectPath(FilePath.class));
// }
}
下面介绍怎么把这个工具类打成jar包,以便后面我们重复使用。
步骤如图:
这样就导出到你读路径下了,我这里是D:\dev\myJAR
进入你保存的目录,这是已经生成一个名为FilePath.jar的jar包了然后接着在其他工程里导入这个jar包,就可以使用包下面的各种方法啦
导入的步骤:然后到刚才保存的路径下选择你的jar包
新建一个测试类Test.java
Test.java代码:
package com.lan.testMyJar;说明:
import filepath.FilePath;
public class Test
{
public static void main(String[] args)
{
System.out.println("当前的包路径为:"+FilePath.getPackagePath(Test.class));
System.out.println("当前的工程路径为:"+FilePath.getProjectPath());
System.out.println("当前的工程路径为:"+FilePath.getPackagePath(Test.class));
System.out.println("编译后的src路径为:"+FilePath.getSrcPath());
System.out.println("编译后的src路径为:"+FilePath.getSrcPath(Test.class));
}
}
运行测试类,结果:
可以看到这几个方法分别获到了编译之后的包路径,src路径(也就是bin),以及工程路径(工程路径不变)
下载我的FilePath.jar:刚上传后面再补上链接