純粋なJavaの分離されたチャンクをきちんとラップできるように、いくつかのhtml/javascriptを配置することが可能かもしれません
いいえ、Java は Javascript に対して、自動車はカーペットに対するものです。ブラウザーが Javascript をどれだけサポートしていても、ブラウザーに Java ランタイムが含まれているとは限りません。そうかもしれませんが、Java がサポートされる可能性は、Flash がサポートされるのとほぼ同じです (Flash が勝つ)。ただのプラグインです。
Java コンパイラとインタープリタ全体を javascript でラップ (javascript にコンパイル) しない限り、これを完全にクライアント側で行うことはできません。それでも、それはかなり遅いでしょう。できること:
オプション1:
- ユーザーに Java コードのチャンクを書かせる
- チャンクをサーバーに送信する
- Java コードの束を追加して、ファイルに保存します。つまり、インクルード、クラス ヘッダー、メソッド ヘッダー、2 つの右中括弧
- サーバーで Java コンパイラを呼び出します。これには、JDK をサーバーにインストールする必要があります。
- クラスがコンパイルされたら、これを jar ファイルにパックして、他の静的クラスとマニフェスト ファイルをまとめます。
- この JAR ファイルの URL でクライアントに応答します。
- クライアントは、この JAR を参照する新しい
applet
またはobject
タグを作成し、サーバーはそれをクライアントにフィードします。
- ユーザーのマシンに JRE があり、Java プラグインとアプレット自体の実行を許可していれば、作業は完了です。
これは最も簡単な方法ですが、最適とは言えません (特に、クライアントが確認しなければならないすべてのセキュリティ警告がある場合)。代わりにこれを行うことができます:
オプション 2:
- 完全に静的なアプレットをクライアントにフィードする
- コンパイルされたクラスにさらにいくつかのクラスをパックしないでください
- 実行時に新しいアプレット要素を作成する代わりに、URL を既存のアプレットに渡します。
- 次に、アプレットはコンパイルされたクラスのみをロードし、新しい実装でシミュレーションを再開します。
また:
- jar は大量のスペースを占有する可能性があるため (特にクラスロードしない場合)、アップロードされたソース コードが目に見えて保存されない場合は、提供時に jar を自動的に削除することもできます。
オプション 3:
Java を Javascript にコンパイルできますが、Java の非常に限られたサブセットのみがサポートされます。
そのようなコンパイラの 1 つは、 Google Web Toolkitの不可欠な部分であり、Java から Web サイト全体を作成するように設計されています。ユーザーは自分のマシンに Java ランタイム環境を用意する必要はありませんが、Javascript に効率的にコンパイルできる Java のサブセットに制限する必要があります (私の記憶が正しければ、java.util の半分をスクラッチする必要があります)。 .
結論: ユーザーに Java を書かせてから結果を観察させることはできますが、Java コンパイルの面倒な作業はサーバーが行う必要があります。ユーザーが Java プラグインを持っていない場合、Java コードを記述して実行することは期待できません。また、クラスローディングや Javasript -> アプレット通信など、Java でコーディングする方法をよく理解しています。