2013-04-15 53 views
1

我在eclipse IDE中的“src”包的底部找到了一个名为“reports”的目录内的一些jasper报告文件,它位于2-3级别。如何才能获得“报告”文件夹内的相关文件路径。我不想获得像“C:\ Users \ Kara \ workspace \ MyProject \ src \ main \ resources \ reports \ someFile.jrxml”这样的路径。我试图通过下面的代码来获取它们,但它并没有给我真正的道路。从位于java目录中的文件名获取文件路径

File testFile = new File("someFile.jrxml"); 
String absPath = testFile.getAbsolutePath(); 

回答

2

如果报道时总是在你的classpath(他们似乎是,假设一个标准的Maven目录布局),用Class.getResource()/ClassLoader.getResource()获得指向您的报告文件的URL。您可以使用此URL来提取报告文件的绝对路径。

URL reportUrl = getClass().getResource("reports/someFile.jrxml"); 
0

你可以试试这个:

URL url = getClass().getResource("/reports/someFile.jrxml"); 
url.getPath(); 
+0

我觉得应该是' “报告/ someFile.jrxml”',而不是' “/reports/someFile.jrxml”'。 –

+0

感谢您的回复。 “getClass()”方法指向哪里?我从Test.java类中尝试了这段代码,但它不起作用,得到了空指针异常。 URL url = Test.class.getResource(“/ reports/someFile.jrxml”); – nudastack

+0

在我的本地计算机中,getClass()。getResource(文件路径)工作正常,我可以通过“.jrxml”文件路径并生成报告。但是,生成项目并将其部署到远程服务器时,找不到指定的文件。我遇到“java.io.FileNotFoundException”。非常感谢您的考虑。 – nudastack