我想在运行时确定我的应用程序启动的类名,即带有 main() 方法的类名,但我在另一个线程中,我的堆栈跟踪并没有一路回到原始类。
我搜索了系统属性和 ClassLoader 必须提供的所有内容,但一无所获。这些信息只是不可用吗?
谢谢。
最佳答案
请参阅 Tom Hawtin 对链接的评论。现在的解决方案是(仅限 Oracle JVM):
public static String getMainClassAndArgs() {
return System.getProperty("sun.java.command"); // like "org.x.y.Main arg1 arg2"
}
仅使用 Oracle Java 7 进行测试。有关特殊情况的更多信息: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4827318
关于java - 如何在线程 java 应用程序中确定运行时的主类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/939932/