利用反射动态获取当前工程下的文件路径_并打成jar包

上一篇动态获取java中的文件路径

这一次我把它打包成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:刚上传后面再补上链接


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值