获取字节码文件的文件路径、获取一个类的具体名称、获取一个类的简单名称、获取一个类的包名
package com.get_src_path;
import java.io.File;
import java.net.URLDecoder;
public class Path_Test {
/**
* 演示的功能:
* 获取字节码的文件路径
* 取得代码路径下的全部文件
* 获取一个类的具体名称
* 获取一个类的简单名称
* 获取一个类的包名
* */
public static void main(String[] args) throws Exception {
//这将取得 运行时的 类的字节码的那个路径
String path =Thread.currentThread().getContextClassLoader().getResource("").getPath();
//(中文路径会 解码出错,所以在下面是对路径进行了解码)
System.out.println(path);
//这句可能会报异常 ,代码作用,解码路径,输出正常的中文路径
String path2=URLDecoder.decode(path, "utf-8");
System.out.println(path2);
//下面取得代码路径下的全部文件
File f=new File(path2);
System.out.println("目录存在吗?"+f.exists());
File[] arr_file=f.listFiles();
//遍历文件数组,输出文件名
for (File tempFile: arr_file){
System.out.println(tempFile.getName());
}
System.out.println("--------------------------------");
String path3=(new Path_Test()).getClass().getName();
//.getPackage().getName();
System.out.println("获取该类的具体名称path3="+path3);
String path4=(new Path_Test()).getClass().getSimpleName();
//.getPackage().getName();
System.out.println("获取该类的简单名称path4="+path4);
String path5=(new Path_Test()).getClass().getPackage().getName();
//.getPackage().getName();
System.out.println("获取该类的包名path5="+path5);
}
}
运行结果:
/F:/%e5%bf%ab%e7%9b%98/%e7%bc%96%e7%a8%8b%e5%b7%a5%e4%bd%9c%e7%a9%ba%e9%97%b4_Recent/MyEclipse_10/J2SE_Test/bin/
/F:/快盘/编程工作空间_Recent/MyEclipse_10/J2SE_Test/bin/
目录存在吗?true
C.class
C2.class
ClipArray.class
com
http
I.class
maopao
my_config_test.xml
StringArray.class
Student.class
Test.class
Test2.class
Undergraduate.class
ValidateNum.class
--------------------------------
获取该类的具体名称path3=com.get_src_path.Path_Test
获取该类的简单名称path4=Path_Test
获取该类的包名path5=com.get_src_path