我有一个小问题,试图找出我的路径问题的最佳解决方案。我正在运行一个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