我正在为 Java 实施一种在线编程竞赛。这个想法是比赛的参与者为应用程序编写一个控制器并将其发送到比赛服务器。该自定义控制器必须从 API 的基类派生。
好的,所以所有参与者都可以编写自己的控制器类,可能还包括其他自定义类,并且由于控制器的主类是从API的(抽象)基类派生的,服务器上的应用程序可以轻松调用子的特定方法类(即自定义控制器)以一定的间隔来控制应用程序。
我现在的问题是:您对我应该如何从 API 的角度处理这种情况有什么建议,以便它允许一种方便的方式来动态加载自定义控制器实现?
我要避免的是参与者需要将 API jar 文件包含到他们的 Java 项目中(例如在 Eclipse 中),然后编写他们的控制器类,再次将所有内容放入一个可执行的 jar 中,然后将其上传到比赛服务器。我绝对不想在服务器上执行完全自定义的应用程序。
我宁愿让参与者只上传他们的自定义控制器类。然后在服务器上这个类应该被自动加载并作为应用程序的一部分。我基本上在这里看到两个选项:
- 将编译好的.class文件上传到服务器;或者
- 上传Java源代码文件,然后在服务器上编译
您会建议这两个选项中的哪一个,为什么?
或者:你有其他更好的选择吗?
此外,我应该如何处理多个类的上传?如果可能的话,我希望允许参与者在主控制器类旁边编写额外的实用程序类。
提前感谢您的所有想法!