以编程方式在类集合中查找main()方法

时间:2012-06-25 14:40:39

标签: java class jar javac main

我正在开发一个项目,需要获取任意数量的java文件,编译它们,然后运行它们,然后运行它们。我面临的问题是:我们经营哪个班级?是否可以在一组类中找到入口点?

我愿意假设给定的文件只有一个入口点。

这是我到目前为止所考虑的内容:

  • 为每个使用反射的jar添加一个帮助器类,以使用main()查找该类。要运行jar,请调用该帮助程序类。
  • 将用户名命名为main()类“Main”,或其他类似内容。

有什么好办法可以解决这个问题吗?该软件适用于学生和新手程序员,所以我愿意为了简单而牺牲稳健性。

谢谢!

2 个答案:

答案 0 :(得分:2)

我头脑中的一个想法可能是自定义注释。它比命名约定更强大,但比创建清单文件更容易。

类似的东西:

@MainClass
public class MyClass {
   public static void main(String [] args) {
      // ...
   }
}

您的工具可以扫描类的注释。

答案 1 :(得分:1)

知道哪个类包含main()的最佳方法是在JAR文件中提供一个调出主类的清单。

然而,在关于以某种方式命名主要类的问题中,您的建议也可能有助于您教授约定与配置,这是一个有用的事情。