Class.getResource 等等各种获取路径以及一些问题总结

本文介绍了在JavaWeb项目中如何获取项目编译后的根目录及特定文件路径的方法,包括使用class.getResource()来定位classes目录及子目录下的资源文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


//获取项目编译的跟目录(class文件下
               String str=teest3.class.getResource("/")+"";
		String str3=teest3.class.getResource("")+"";
		System.out.println("str==="+str);
		System.out.println("str3==="+str3);
结果
str===file:/D:/eclipseworkspace5/abc/build/classes/
str3===file:/D:/eclipseworkspace5/abc/build/classes/com/serviceinterface/



System.out.println(new File(PDFUtil.class.getResource("/").getPath()).toString());
结果
D:\eclipseworkspace5\SLCC_branches\slcc_web\target\classes


得到根路径 System.out.println(PDFUtil.class.getResource("/").getPath());
得到本类路径System.out.println(PDFUtil.class.getResource("").getPath());
得到根路径System.out.println(PDFUtil.class.getClassLoader().getResource("").getPath());
System.out.println(PDFUtil.class.getClassLoader().getResource("/").getPath());

问题1:
项目中遇到这样一个问题  需要获得一个路径  首先把javaweb项目打成war包放到了linux的jboss上但是项目部署路径改过了,这个war包也不解压  需要在代码里面获取classes文件夹下面的一个文件,当时是获取一个ireport的模板 叫report.jrxml文件  最后获取的方式是  request.getRealPath("/")+"WEB-INF/classes/report.jrxml"   这个路径获取了jboss在缓存中解压war包的路径 最终找到这个jrxml文件。这个路径指向jboss自己编译的时候生成的一个随机的缓存文件里面的war的解压路径
使用中文解释ssm管理系统文件action文件里的以下代码package com.action; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.entity.Marks; import com.entity.Programs; import com.entity.Student; import com.entity.Teacher; import com.service.MarksService; import com.service.ProgramsService; import com.service.StudentService; import com.service.TeacherService; import com.util.PageHelper; import com.util.VeDate; //定义为控制器 @Controller // 设置路径 @RequestMapping(value = "/marks", produces = "text/plain;charset=utf-8") public class MarksAction extends BaseAction { // 注入Service 由于标签的存在 所以不需要getter setter @Autowired @Resource private MarksService marksService; @Autowired @Resource private TeacherService teacherService; @Autowired @Resource private StudentService studentService; @Autowired @Resource private ProgramsService programsService; // 准备添加数据 @RequestMapping("createMarks.action") public String createMarks() { List<Student> studentList = this.studentService.getAllStudent(); this.getRequest().setAttribute("studentList", studentList); List<Programs> programsList = this.programsService.getAllPrograms(); this.getRequest().setAttribute("programsList", programsList); return "addmarks"; } // 添加数据 @RequestMapping("addMarks.action") public String addMarks(Marks marks) { double total = 0; List<Programs> programsList = this.programsService.getAllPrograms(); for (Programs p : programsList) { String pnum = this.getRequest().getParameter("num_" + p.getProgramsid()); System.out.println(pnum); total += Double.parseDouble(pnum); } String teacherid = (String) this.getSession().getAttribute("teacherid"); marks.setTeacherid(teacherid); marks.setAddtime(VeDate.getStringDateShort()); marks.setScore("" + VeDate.getDouble(total)); this.marksService.insertMarks(marks); return "redirect:/marks/createMarks.action"; }
05-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值