我试图从我的项目目录加载一个 jasper 报告,但是当我启动应用程序时,它给我一个关于文件位置的错误,它说:
java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\apache-tomcat-7.0.50\bin\report.jasper
要获取文件路径,我使用这个:
new File("report.jasper").getAbsolutePath()
如果我在一个简单的类中运行它,它会为我提供正确的路径,但是当我运行应用程序时,它会为我提供 tomcat 的路径,我尝试了一些其他函数,例如 getCanonicalPath
、 getCanonicalFile
和 getAbsoluteFile
;但结果始终相同。
有解决方案吗?我的应用程序将在两个平台上运行:Windows 和 Linux,每次我更新应用程序时将报告文件放在每个相应的 tomcat 路径中会很烦人,我尽量不这样做。
提前致谢。
最佳答案
如果您的文件位于网络应用程序根目录中,您应该使用 servlet 上下文询问它的真实路径 as javadoc explains
另一种方法是使用 getClassLoader().getResourceAsStream() ,但只有在不需要知道文件路径时才可以使用它。
关于java - 获取文件路径不是apache tomcat路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21760240/