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

可以获取在Java中调用方法的类的文件路径吗?,java,file,io,path,libraries,Java,File,Io,Path,Libraries,比如说,我有这样一个场景 C:\Users\Name\Documents\Workspace\Project\Src\Com\Name\Foo.java 那么,假设类Bar位于一个用作库的.JAR文件中,是否有可能找出调用method()的类的来源?(在本例中,为Foo类) 我在Google上搜索了一下,什么也找不到,而这段代码无疑会大大简化我的库 是的,您可以获取执行文件的路径。例如,您拥有以下文件: C:\Users\Name\Documents\Workspace\Project\Src\

比如说,我有这样一个场景

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

那么,假设类Bar位于一个用作库的.JAR文件中,是否有可能找出调用method()的类的来源?(在本例中,为Foo类)


我在Google上搜索了一下,什么也找不到,而这段代码无疑会大大简化我的库

是的,您可以获取执行文件的路径。例如,您拥有以下文件: C:\Users\Name\Documents\Workspace\Project\Src\Com\Name\Foo.java

编译后,它将更改为: C:\Users\Name\Documents\Workspace\Project\Src\Com\Name\Foo.class

您可以使用此选项获取文件的目录:

System.getProperty("user.dir");
然后您可以将此字符串添加到其中:

String cPath = System.getProperty("user.dir")+"\\Foo.class";

因此,cPath将是文件的完整路径。

是的,您可以获得文件执行的路径。例如,您拥有以下文件: C:\Users\Name\Documents\Workspace\Project\Src\Com\Name\Foo.java

编译后,它将更改为: C:\Users\Name\Documents\Workspace\Project\Src\Com\Name\Foo.class

您可以使用此选项获取文件的目录:

System.getProperty("user.dir");
然后您可以将此字符串添加到其中:

String cPath = System.getProperty("user.dir")+"\\Foo.class";

因此,cPath将是文件的完整路径。

是的,您可以获得文件执行的路径。例如,您拥有以下文件: C:\Users\Name\Documents\Workspace\Project\Src\Com\Name\Foo.java

编译后,它将更改为: C:\Users\Name\Documents\Workspace\Project\Src\Com\Name\Foo.class

您可以使用此选项获取文件的目录:

System.getProperty("user.dir");
然后您可以将此字符串添加到其中:

String cPath = System.getProperty("user.dir")+"\\Foo.class";

因此,cPath将是文件的完整路径。

是的,您可以获得文件执行的路径。例如,您拥有以下文件: C:\Users\Name\Documents\Workspace\Project\Src\Com\Name\Foo.java

编译后,它将更改为: C:\Users\Name\Documents\Workspace\Project\Src\Com\Name\Foo.class

您可以使用此选项获取文件的目录:

System.getProperty("user.dir");
然后您可以将此字符串添加到其中:

String cPath = System.getProperty("user.dir")+"\\Foo.class";

因此,cPath将是文件的完整路径。

您可以使用
Foo.class.getResource(“Foo.class”)
获取编译类文件的位置。问题是,这将如何帮助您简化库?

您可以使用
Foo.class.getResource(“Foo.class”)
获取已编译类文件的位置。问题是,这将如何帮助您简化库?

您可以使用
Foo.class.getResource(“Foo.class”)
获取已编译类文件的位置。问题是,这将如何帮助您简化库?

您可以使用
Foo.class.getResource(“Foo.class”)
获取已编译类文件的位置。问题是,这将如何帮助您简化库?

如果您需要从方法栏#方法中获取调用方类文件的路径,那么您可以使用以下方法:

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

如果需要从方法栏#方法内部获取调用方类文件的路径,则可以使用以下方法:

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

如果需要从方法栏#方法内部获取调用方类文件的路径,则可以使用以下方法:

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

如果需要从方法栏#方法内部获取调用方类文件的路径,则可以使用以下方法:

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

Foo.class.getResource(“Foo.class”)Foo.class.getResource(“Foo.class”)Foo.class.getResource(“Foo.class”)Foo.class.getResource(“Foo.class”)这不是我要问的,抱歉,如果我不清楚,我想得到调用该方法的类,所以如果Jake.class调用Jim.class中的方法,我想返回Jake.class的路径这不是我要做的,抱歉,如果我不清楚,我想得到调用该方法的类,所以如果Jake.class调用Jim.class中的一个方法,我想返回Jake.class的路径这不是我要做的,抱歉,如果我不清楚,我想得到调用该方法的类,如果Jake.class调用Jim.class中的一个方法,我想返回Jake.class的路径这不是我要问的,抱歉,如果我不清楚,我想得到调用该方法的类,所以如果Jake.class调用Jim.class中的一个方法,我想返回Jake.class的路径