public Vector<ResultModel> GetResults() { try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager
.getConnection("jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=E:\\JAVA\\JAVA项目\\TestForExcel\\WebRoot\\教技0802成绩单.xls");
// excel里面的sheet 要用[$]括起来
ps = conn.prepareStatement("select * from [教技0802$]");
rs = ps.executeQuery();
while (rs.next()) {
rm = new ResultModel(rs.getString(2), rs.getString(3), rs
.getString(4), rs.getString(5), rs.getString(6), rs
.getString(7), rs.getString(9), rs.getString(10), rs
.getString(11));
String rmNameString=rm.getName();
if (rmNameString.equals("课程名")  || rmNameString.equals("学分") 
|| rmNameString.equals("姓名") ) {
continue;

vrm.add(rm);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
rs.close();
ps.close();
conn.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
return vrm;
}DBQ=E:\\JAVA\\JAVA项目\\TestForExcel\\WebRoot\\教技0802成绩单.xls"
如何把这个绝对路径写成相对路径
这个方法的类放在E:\JAVA\JAVA项目\TestForExcel\src\com\dealexcel\DealExcel.java

解决方案 »

  1.   

    new File("").getPath()  这个是类所在路径
      

  2.   

    获取当前项目的根目录:
    Properties   properties   =   System.getProperties(); 
    properties.getProperty("user.dir")
     
    获取当前类的绝对路径:
    当前类名.class.getResource(".").getPath() / 或 this.class.getResource(".").getPath()
     
    获取当前类同目录下某个properties文件:
    String path=ReportPathUtil.class.getResource("jasperPath.properties").getPath();
    Properties proFile=new Properties();
    proFile.load(new FileInputStream(path));
     
    获取当前类所在目录的上下级目录:
    A.class.getResource("../Fold-B").getPath()
      

  3.   

    放在WebRoot 目录下
    你直接写这个文件名就可以找到,不用加路径,如果是"WebRoot\\upload\\教技0802成绩单.xls"你写成 path ="upload/教技0802成绩单.xls" 就OK了
      

  4.   

    用那种..形式的相对路径可以吗?比如说,
    教技0802成绩单.xls放在E:\\JAVA\\JAVA项目\\TestForExcel\\WebRoot\\教技0802成绩单.xls"
    而类文件在 E:\JAVA\JAVA项目\TestForExcel\src\com\dealexcel\DealExcel.java
    可以写成../../../WebRoot\\教技0802成绩单.xls
      

  5.   

    我是直接放在webroot路径下的 
      

  6.   

    Thread.currentThread().getContextClassLoader().getResource("jasper/xxx.jasper").toURI().getPath()