スーパークラス A、サブクラス B, C, D, ... に対して A にだけ main() を実装し、
サブクラスの名前でコマンドラン起動した時 (java B や java C) サブクラス名を
取りたいんだけど、無理ですかね?

public abstract class A{
  public static void main(String[] args){
    // コマンドライン引数の解析や初期化処理
    A a = (A)Class.forName("コマンドで指定したクラス名");
    a.execute();
    // 終了処理
  }
  protected abstract void execute();
}