java - 可以获取调用Java中方法的类的文件路径吗?

标签 java file io path libraries

假设我有这样的场景

C:\Users\Name\Documents\Workspace\Project\Src\Com\Name\Foo.java

Public class Foo {

    public Foo() {
        Bar b = new Bar();
        b.method();
    }
}

然后假设 Bar 类位于用作库的 .JAR 文件中,是否可以找出调用 method() 的类来自何处? (在本例中为 Foo 类)

我在 Google 上查了一下,但找不到任何东西,而这段代码肯定会大大简化我的库。

最佳答案

如果您需要从方法 Bar#method 内部获取调用者类文件的路径,那么您可以使用如下内容:

StackTraceElement[] stackTrace = new Throwable().getStackTrace();
String callerFilePath = getClass().getClassLoader().getResource(stackTrace[1].getClassName().replace('.', '/') + ".class"));

关于java - 可以获取调用Java中方法的类的文件路径吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26674037/

相关文章:

java - 在程序中使用Google关键字修正

c++ - 无法在 Linux 中使用 c_str() 打开文件

java - 如何在java中使用StringTokenizer将int从文件存储到Arraylist?

java - 为什么我在此 Java 程序中收到 ArrayIndexOutOfBoundsException?

java - 在没有 ODBC 的情况下从 Java 操作 Access 数据库

java - 在 Hybris 中,如何从 Java 中的产品模型获取属性?

c# - 如何检查文件当前是否打开或正在写入 .NET?

c# - 在 C# 的文本文件中创建一个没有重复字符串条目的列表

java - 在不同的类中调用改造

Java,扩展File以获得更多属性