jarで複数のmainを扱う

javaで作った複数のバッチ処理を一つのjarにまとめようと思ったのですが、他のjarライブラリー等を含めた実行可能jarだと特殊なクラスローダ経由で実行する為、実行できるメインのクラスが一つしか設定出来ないらしい。(eclipseで作ったjar)
ほぼ同じコードやライブラリーを使っているので複数のjarを作るのも野暮ったい感じがしたので、以下の様なエントリー用のクラスを作って一つのjarにまとめました。

public class EntryPoint  {
  public static void main(String[] args) {
    String[] sendArgs = new String[args.length - 1];
    for (int i = 0; i < sendArgs.length; i++) {
      sendArgs[i] = args[i + 1];
    }

    String className = args[0];

    try {
      Class<?> main = Class.forName(className);
      Object[] vargs = {sendArgs};
      main.getMethod("main", new Class[] { String[].class })
        .invoke(null, vargs);
    } catch (Eception e) {
      e.printStackTrace();
    }
  }
}

上記のクラスを実行可能jarのメインのクラスに設定して以下の様に実行すればOK。
java -jar Hoge.jar packagename.MainClassName real args