我有一个在命令行中运行的Java程序,它包含一组我编写的类,这些类都包含公共代码元素。
让我们假设结构如下:
package.AbstractParent (contains: static void main)
package.ClassA (extends: AbstractParent)
package.ClassB (extends: AbstractParent)
当我执行以下操作时:java package.ClassA
,static void main
内的AbstractParent
被调用。
如果不在static void main
和ClassA
中放置ClassB
,我是否有办法确定在AbstractParent
内调用哪个?
例如,当我运行java package.ClassA
时,AbstractParent
将确定ClassA
。当我运行java package.ClassB
时,AbstractParent
将确定ClassB
。
答案 0 :(得分:0)
找到答案相当快,但谷歌搜索很麻烦,所以我会留在这里。
最后,我能够使用System.getProperty("sun.java.command")
来解决课程问题。但是,它确实包含所有后续参数:
className = System.getProperty("sun.java.command");
className = className.substring(0, className.indexOf(" "));
从上下文中,它返回package.ClassA
或package.ClassB