【高分回赠】Java程序内可以读取 把编译后的class文件放在WEB-INF内就不行了

changeking 2010-09-04 12:00:44
我JAVA文件的PATH--->
D:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\ROOT\JavaProject\Query1.java

我owl文件的PATH---->
D:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\ROOT\AltarPieces.owl

我把相对路径设置为“../AltarPieces.owl”
FileInputStream fstream2 = new FileInputStream("../AltarPieces.owl");
在java里面可以成功运行读取owl文件 但是把那个编译后的class文件放到Tomcat的WEB-INF文件夹内就出现HTTP Status 500报错 不知道什么原因。。难道说class文件会因为位置的不同而改变路径?大侠们帮忙看下吧


HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: ..\AltarPieces.owl (The system cannot find the file specified)
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:361)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

root cause

java.io.FileNotFoundException: ..\AltarPieces.owl (The system cannot find the file specified)
java.io.FileInputStream.open(Native Method)
java.io.FileInputStream.<init>(Unknown Source)
java.io.FileInputStream.<init>(Unknown Source)
com.query.Query1.ShowAltarpieces(Query1.java:100)
org.apache.jsp.secondpage_jsp._jspService(secondpage_jsp.java:120)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

...全文
122 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
simaa0106 2010-09-04
  • 打赏
  • 举报
回复
D:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\JavaProject\Query1.java 试试
bb12152205gg 2010-09-04
  • 打赏
  • 举报
回复
三楼说的很有道理
changeking 2010-09-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 humanity 的回复:]

你能确定在 tomcat 运行时的当前路径是什么?

我觉得它是 $tomcat/bin 目录。那么 ..\xxx.owl 就会跑到 $tomcat\bin\xxx.owl 去找文件,当然找不到。

像 Eclipse 这种 IDE 运行一个 main class 会默认地把项目根目录当成当前目录,所以,你用 ..\ 就能找到 owl 文件。

建议你用一个 Process Expl……
[/Quote]

这位大侠 你分析的很对,那个软件我下载下来了 请问是eclipse的进程吗?不太懂

请问“XXX.class.getResourceAsStream("/packageName/A.properties");”这段程序写在哪呢?XXX和A分别代表什么。。
humanity 2010-09-04
  • 打赏
  • 举报
回复
一般在同个项目打包出来的资源(非 class 文件)应该用 XXX.class.getResourceAsStream("/packageName/A.properties"); 这样访问。

对于不是在源文件夹中打包的,比如 WEB-INF/下面的,就可以用 ServletContext 里面的相应的方法去查找资源。

humanity 2010-09-04
  • 打赏
  • 举报
回复
你能确定在 tomcat 运行时的当前路径是什么?

我觉得它是 $tomcat/bin 目录。那么 ..\xxx.owl 就会跑到 $tomcat\bin\xxx.owl 去找文件,当然找不到。

像 Eclipse 这种 IDE 运行一个 main class 会默认地把项目根目录当成当前目录,所以,你用 ..\ 就能找到 owl 文件。

建议你用一个 Process Explorer 这样的进程浏览工具观察一个进程的当前工作目录,因为相对目录一般都是相当于进程的当前目录来说的。

81,115

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧