Java获取当前路径
问题描述:
我有一个小问题,试图找出我的路径问题的最佳解决方案。我正在运行一个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";
谢谢你们
答
如果说你是从jar文件运行:
new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getParent()+"/"
返回包含的jar文件的文件夹。
删除上述.getParent()
得到的确切class
文件
答
既然你是从MyClass的调用这个路径,你应该叫 File directory = (new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath())).getParentFile();
我有同样的问题一次。除了Jatin的回答之外,我必须添加toURI()以在所有平台(Windows等)上获得正确的路径并发布1.5个JVM。
你可以得到本地分隔符看看这个链接。 http://*.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