我有一個小問題,試圖找出我的路徑問題的最佳解決方案。我正在運行一個java測試,我想獲得兩件事情。Java獲取當前路徑
- 運行
我想正確的項目
final String parentDir = System.getProperty("user.dir");
final String path = "src/test/java/" + method.getDeclaringClass()
.getCanonicalName().replaceAll("\\.", "/") + ".java";
任何幫助,將不勝感激。謝謝
更新:我想獲取預編譯代碼的URL,因爲我需要訪問代碼中的註釋。這可能會改變你的一些人的答案
更新2:好的我得到它的工作。
final String path = new File(getClass().getResource("/").getFile())
.getParent().split("target")[0] + "src/test/java/" + method
.getDeclaringClass().getCanonicalName()
.replaceAll("\\.", "/") + ".java";
謝謝你們
你可以得到本地分隔符看看這個鏈接。 http://stackoverflow.com/questions/8075373/file-separator-vs-filesystem-getseparator-vs-system-getpropertiesfile-separa – Elmer 2013-05-06 19:26:39
當前代碼的改進不大:使用replace('。','/')'而不是'replaceAll(「\\。」,「/」)'來避免正則表達式引擎。 – Pshemo 2013-05-06 19:30:30
獲取項目的絕對位置嘗試打印到控制檯以下:System.out.println(new File(「。」)。getAbsolutePath()); – Mike 2013-05-06 19:40:43