是否有Java等效于__FILE__ == $ 0?

| 我知道在Python和Ruby中有片段
if __name__ == \'__main__\':
if __FILE__ == $0
,它们仅在直接打开脚本的情况下才能运行。 这似乎是我没有用Java(我学校的“官方”编程语言)所见过的非常有用的功能。 Java中有与此等效的东西吗?如果没有,有什么办法可以实施?     
已邀请:
java具有
public static void main(String[] args)
方法。当从命令行将一个类作为主类运行时,将调用此方法,并且通常仅在这种情况下调用(您可以直接调用它,但是通常没有任何意义)。因此,在Java中,标准是在此方法中放置“主调用”逻辑。     
要添加到jthalborn的答案中: 真正的问题不是“我如何用Java做到这一点?”而是“为什么Ruby和Python需要这样的融合?” 答案是Ruby和Python希望在文件加载时(从库中或作为主程序)从头到尾执行一个文件,因此您需要黑客说\“如果不运行此部分,我被称为图书馆\“。 Java不期望从头到尾运行文件或类。它在特定类中带有一个“ 3”,其中包含用于将该类用作主程序的代码。因此,Java不需要此技巧。 (C和C ++在这方面就像Java,但程序中只能有一个
main()
函数,因此您要么需要借助预处理器来决定要编译哪个函数,要么就需要在其中放入不同的different3ѭ函数。不同的文件,并仅编译所需的文件。)     
获取堆栈跟踪并查看第一个方法:
Throwable t = new Throwable();
StackTraceElement[] elems = t.getStackTrace();
... elems[elems.length-1] should contain a main method ... check if it is yours :) ...
    

要回复问题请先登录注册