java - 获取文件路径不是apache tomcat路径

标签 java apache file tomcat jasper-reports

我试图从我的项目目录加载一个 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 getCanonicalFilegetAbsoluteFile;但结果始终相同。

有解决方案吗?我的应用程序将在两个平台上运行:Windows 和 Linux,每次我更新应用程序时将报告文件放在每个相应的 tomcat 路径中会很烦人,我尽量不这样做。

提前致谢。

最佳答案

如果您的文件位于网络应用程序根目录中,您应该使用 servlet 上下文询问它的真实路径 as javadoc explains

另一种方法是使用 getClassLoader().getResourceAsStream() ,但只有在不需要知道文件路径时才可以使用它。

关于java - 获取文件路径不是apache tomcat路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21760240/

相关文章:

java - 从多模块gradle项目的子项目配置中的子项目获取变量

php - 从 apache 服务器中的 php 访问 shell 可执行文件

Apache HTTP : binding an external C library with I/O methods 的自定义模块

java - 在 Java 中删除主文件表

java - 需要帮助理解有关 While 循环条件语句和类型转换的一些基本 Java 概念

java - 如何正确编码此 URL

java - 附近连接 : Why is the payload file from the Downloads folder null?

Apache 重写 : Always use HTTPS (how to add an exception)

php - 在 Symfony 文件对象中加载 'php://temp' 或 'php://memory' 文件

java - Java中过滤目录中的文件