class Student{

private String name;
private String path;
public Student(Class s){
String tempPath = s.getProtectionDomain().getCodeSource().getLocation().getFile();//---①

try{
tempPath = java.net.URLDecoder.decode(tempPath,"UTF-8");//---②
}catch(Exception e){
e.printStackTrace();
}

java.io.File jarFile = new java.io.File(tempPath);//---③
this.name=jarFile.getName();

java.io.File parent = jarFile.getParentFile();//---④
if(parent!=null){
this.path=parent.getAbsolutePath();//---⑤
}
}}

解决方案 »

  1.   

    this.path=parent.getAbsolutePath();//---⑤
    获取所在文件夹的“绝对路径”
      

  2.   

    第一句:得到类s所在的jar包路径;
    第二句:使用UTF-8的编码格式输出路径;
    第三句:用路径作参数建立文件;
    第四句:获得父文件,及上一级文件
    第五句:获取绝对路径
      

  3.   

    /E:/workspace/myeclipse/workspace/InfoPla/WebRoot/WEB-INF/classes/   //1拿到工程所在目录
    /E:/workspace/myeclipse/workspace/InfoPla/WebRoot/WEB-INF/classes/   //2 用utf-8编码转换
    classes   //3  拿到当前class所在文件夹名
    java.io.File parent = jarFile.getParentFile();//---④  拿到上级目录文件
    E:\workspace\myeclipse\workspace\InfoPla\WebRoot\WEB-INF  //4 拿到上级目录地址。其实试下就应该出来了
      

  4.   

    ① 取入参某Class的所在类路径。目录的话,会取到classes目录(含路径)。jar包的话,会取到jar文件(含路径)。
    ② 用于还原URL格式编码的中文和特殊字符(如空格)。
    ③ 取classes目录或jar文件
    ④ 取classes目录的上级目录或jar文件所在的目录
    ⑤ 取上述目录的全路径字符串
      

  5.   

    ① 取入参某Class的所在类路径。目录的话,会取到classes目录(含路径)。jar包的话,会取到jar文件(含路径)。
    ② 用于还原URL格式编码的中文和特殊字符(如空格)。
    ③ 取classes目录或jar文件
    ④ 取classes目录的上级目录或jar文件所在的目录
    ⑤ 取上述目录的全路径字符串