这是问题所在:
如前所述,我在同一目录中有.jrxml,logo.jpg和使用.jrxml的.java。
事实是,fileResolver
FileResolver fileResolver = new FileResolver() { @Override public File resolveFile(String fileName) { return new File(fileName); }};没有返回图像文件。我发现它映射到另一个目录,而不是我期望的目录。因此,我将其更改为:
FileResolver fileResolver = new FileResolver() { @Override public File resolveFile(String fileName) { URI uri; try { uri = new URI(this.getClass().getResource(fileName).getPath()); return new File(uri.getPath()); } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } }};这样就解决了。我忘记了以下事实:
相反,相对路径名必须根据从其他路径名获取的信息来解释。默认情况下,java.io包中的类始终针对当前用户目录解析相对路径名。该目录由系统属性user.dir命名,通常是在其中调用Java虚拟机的目录。
(摘自Java api- 文件(Java Platform SE
6))
JVM所在的目录不是我拥有所有这些数据的目录。
谢谢!



