私は一種のオンライン プログラミング コンテストを Java で実装しています。アイデアは、競争の参加者がアプリケーションのコントローラーを作成し、それを競争サーバーに送信するというものです。そのカスタム コントローラーは、API の基本クラスから派生する必要があります。
すべての参加者は、おそらく他のカスタム クラスも含めて、独自のコントローラー クラスを作成できます。コントローラーのメイン クラスは API の (抽象) 基本クラスから派生しているため、サーバー上のアプリケーションは、子の特定のメソッドを簡単に呼び出すことができます。アプリケーションを制御するために、特定の間隔でクラス (つまり、カスタム コントローラー) を変更します。
私の質問は次のとおりです。カスタムコントローラーの実装を動的にロードする便利な方法を可能にするために、API の観点からこのシナリオを処理する方法について何か提案はありますか?
私が避けたいのは、参加者が API jar ファイルを Java プロジェクト (Eclipse など) にインクルードしてから、コントローラー クラスを記述し、すべてを実行可能な jar に再度入れて、それを競技サーバーにアップロードする必要があることです。サーバー上で完全にカスタム化されたアプリケーションを実行したくはありません。
むしろ、参加者がカスタム コントローラー クラスのみをアップロードできるようにしたいと考えています。次に、サーバー上で、このクラスがアプリケーションの一部として自動的にロードされます。ここには基本的に2つのオプションがあります。
- コンパイルされた .class ファイルをサーバーにアップロードします。また
- Java ソース コード ファイルをアップロードし、サーバー上でコンパイルする
これら 2 つのオプションのどちらを提案しますか? また、その理由は何ですか?
または:別のより良い代替手段はありますか?
さらに、複数のクラスのアップロードをどのように処理すればよいですか? 可能であれば、参加者がメインのコントローラー クラスのほかに追加のユーティリティ クラスを作成できるようにしたいと考えています。
あなたのすべてのアイデアを前もってありがとう!