2013-04-15 57 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