当我通过jrxml
调用.load()
文件时,它会抛出异常FileNotfoundException
。
我试过绝对路径,但它不起作用。请帮忙。
答案 0 :(得分:1)
FileNotFoundException
通常意味着该文件不存在。从代码中获取路径并将其粘贴到文件系统资源管理器中,看它是否存在。
如果是,则表示由于某种原因无法访问:
当具有指定路径名的文件不存在时,FileInputStream,FileOutputStream和RandomAccessFile构造函数将抛出此异常。如果文件确实存在但由于某种原因无法访问,例如当尝试打开只读文件进行写入时,这些构造函数也会抛出它。
答案 1 :(得分:1)
您应该始终在Java IO中使用绝对路径。显然你试过的那个是完全错的。也许你只是根据webapp的部署位置猜对了。你不应该这样做。如果jrxml
文件实际位于webcontent中,那么您可以使用ServletContext#getRealPath()
将相对Web路径转换为绝对磁盘文件系统路径,然后您可以在通常的Java IO内容中进一步使用该路径
假设file.jrxml
位于webcontent根目录中(例如http://example.com/contextname/file.jrxml
可访问),这是一个示例:
String absolutePath = getServletContext().getRealPath("file.jrxml");
File file = new File(absolutePath);
答案 2 :(得分:0)
这取决于您如何为其提供对文件的引用。查看JRXmlLoader http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/xml/JRXmlLoader.html的文档 你可以看到你可以在对File对象的引用中传递它。你可能只是传入一个字符串,这可能是错误的。
尝试类似的东西 String path =“/ tmp / test.jrmxl”; 文件jrxmlFile =新文件(路径); JasperDesign jasperDesign = JRXmlLoader.load(jrxmlFile); 使用适当的try / catch等等,然后在担心加载器之前先调试文件。
你应该得到一些jasperreports文档。这些书非常适合那些基本的东西。