私はプロジェクトのすべてのクラスのリストをJavaで取得しようとしていますが、メインメソッドが配置されているクラスを識別したいと思います。実際にクラス自体のコードを見ずに、クラスがmainメソッドを実装していることを識別できる方法はありますか?クラスにメインメソッドがあるかどうかをチェックする方法はありますか?
私は以下を実装しましたが、戻り値は常にfalseです。誰がなぜこれが起こっているのか知っていますか?あなたはクラス名を持っている場合
Class<?> c = "edu.tool.parsing.A".getClass();
boolean hasMain = true;
try {
c.getMethod("main", String[].class);
hasMain=true;
} catch (SecurityException e) {
hasMain = true;
} catch (NoSuchMethodException e) {
hasMain=false;
}
[Reflection](http://docs.oracle.com/javase/tutorial/reflect/)が役立つかもしれません。 –
Windowsやその他のオペレーティングシステムを使用してプロジェクトで「メインメイン」を検索してみませんか?メソッド 'main' throught reflectionを探しているのはあまりにも多すぎるようです:)何か一般的なランチャーを生成するためにしばしばそれをやりたいのでない限り。 – Jerome
回答のバリエーションが示すとおり、質問に文脈を含める必要があります。例えば。 _where_と_how_これらのクラスをリストしていますか? – tveon