Java获取当前路径

时间:2013-05-06 19:23:29

标签: java

我在试图找出解决路径问题的最佳解决方案时遇到了一些问题。我正在运行一个java测试,我希望得到两件事。

  1. 项目的绝对位置
  2. 正在运行的当前类文件的绝对位置
  3. 我想在操作系统版本上正确/或\,因此文件夹结构保持不变。我目前正在使用它,但它并不是我正在寻找的

    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";
    

    谢谢大家

2 个答案:

答案 0 :(得分:1)

鉴于你是从MyClass调用它,你应该打电话 File directory = (new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath())).getParentFile();

我曾经有过同样的问题。除了Jatin的答案之外,我还必须添加一个toURI()来获取所有平台(Windows等)上的正确路径并发布1.5个JVM。

答案 1 :(得分:0)

如果说你是从jar文件运行的话:

new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getParent()+"/"

返回包含jar文件的文件夹。

移除上方的.getParent()以获取确切class文件的路径