如何在java中获取图片路径?
我正在使用eclipse,我想在jsp中显示图像,我想给出类似"/images/logo.jpg“的路径,但在执行页面时得到了空指针异常。
如果我给出了fullpath,它的工作原理就像"d:/project/images/logo.jsp".How来显示带有绝对路径的图像?
发布于 2010-07-09 00:15:19
你应该尽量避免在java.io中使用相对路径。任何相对路径都将是相对于当前工作目录的,这取决于启动应用程序的方式,并且无法从代码内部进行控制。例如,当作为Tomcat服务启动时,它将与c:/path/to/tomcat/bin相关。在Eclipse中运行时,它将是相对于c:/path/to/eclipse/project/bin的。在命令控制台中运行时,它将相对于当前打开的文件夹。等等。你不会想要依赖它的。馊主意。
在JSP/Servlet way应用程序中,基本上有两种方法可以可靠地使用相对路径来获取绝对资源路径:
JSP ClassLoader = Thread.currentThread().getContextClassLoader();字符串路径=从webcontent (所有JSP文件和/WEB-INF文件夹所在的位置)中classLoader.getResource("/images/logo.jpg").getPath();
ServletContext context = getServletContext();//继承自HttpServlet。字符串路径= context.getResource("/images/logo.jpg").getPath();
如果您最终想要的是一个InputStream,您可能打算使用new FileInputStream(path)创建它,那么您应该改用getResourceAsStream()方法:
来自类路径的
classLoader.getResourceAsStream("/images/logo.jpg");
InputStream内容= context.getResourceAsStream("/images/logo.jpg");
发布于 2010-07-09 00:00:51
用images/logo.jpg代替/images/logo.jpg,即去掉第一个斜杠。
https://stackoverflow.com/questions/3205503
复制相似问题