1

そのため、私の友人は、私が Bukkit 用に書いているこのプラグインについてリクエストを出し続けており、まともな私と同じように、それらを受け入れています。残念ながら、私はそれほど優れたプログラマーではありません。このプラグイン (プラグインに付属するローカル ファイル) のヘルプ ページを作成していますが、プラグインの .jar ファイルを実行する方法を知る必要があります。<head></head>私はメインクラスの準備ができており、私が計画している方法は、タグの一部としてこのようなものを持つことです.

<script> <!--
if(confirm("Would you like to run the plugin to set up first? (Click cancel if you do not)")) {
    //Something to run the plugin .jar file
}
//-->
</script>

これは機能しますか?変更が必要な場合は、お知らせください。関数を呼び出すことしかできないと思います。その場合は、 を呼び出すだけmain()です。
注: これはそのまま動作します。.jar ファイルを実行する代わりに、別のポップアップを作成するだけです。注: Web ページと jar ファイルの両方が既にユーザーのコンピューターにダウンロードされています。必要なのは、それを実行できることだけです。
注: この Web ページは文字通り HTML ファイルであり、プラグインをダウンロードするときにコンピューターにダウンロードされます。自動セットアップ機能であるため、プラグインを実行する必要があります。Web サイトはサーバーでホストされていません。私は本当にそれを明確にする必要があると感じています。

コードを調べて、私の目的にはリンクが最も簡単で最適であると判断しました-すべての助けに感謝します! (ちなみに、.jar ファイルを使用して、ヘルプ ドキュメントをフォルダーに展開することが判明しました。まあ :P)

4

3 に答える 3

1

調べることができるもう 1 つのことは、Java Web Start フレームワークです: http://en.wikipedia.org/wiki/Java_Web_Start

これにより、ユーザーはブラウザから任意の jar ファイルを直接起動し、必要に応じてマシンにインストールできます。したがって、探しているのが Web サイトを介して Java プログラムをデプロイする方法だけである場合は、これが最適なソリューションとなる可能性があります。

このシナリオでは、Java コードは、アプレットのようにブラウザの「内部」で実行されません (JVM の内部ですが、ブラウザに関連付けられています)。 jar ファイルをコンピュータのハードディスクからダウンロードします。

于 2012-12-04T15:53:04.200 に答える
1

HTMLページのどこかに静的<applet>またはタグを配置するだけで、常にJavaコードがロードされます。<object>

後で動的にロードしたい場合、またはロードするか今すぐロードするかをユーザーに選択させる場合は、JavaScript で次の構成を使用できます。

var app = document.createElement('applet');
app.archive= 'Java.jar';  // Your java jar file here
app.code= 'Java.class';   // Your Main class that extends Applet
app.width = '400';        // The size of the area for displaying ...
app.height = '10';        //   ... the applet's graphical output
document.getElementsByTagName('body')[0].appendChild(app);

(Beachhouse の回答はこちら: Java アプレットを Javascript で動的に埋め込むにはどうすればよいですか? ; これは<applet>タグを使用しますが、代わりにタグを使用するように簡単に変更できます<object>)。

Java コードが実際に拡張されていることが重要ですjava.applet.Applet。このシナリオでは、単にmain()関数を持つだけでは十分ではありません。このAppletクラスには、オーバーライドするメソッド ( init()destroy()start()、およびstop()) があり、アプレットがロード/アンロード/表示/非表示されると自動的に呼び出されます。を実装するクラスでパブリック関数を定義することもできます。これは、JavaScript から直接オブジェクトでApplet呼び出すことができます。appJava と JavaScript が使用する型にはいくつかの違いがあるため、これを少しいじる必要があるかもしれません。そのため、任意の型のパラメーターを返したり期待したりすることはできませんが、少し試行錯誤 (または読み取り) を行います。ウェブ上で)、それはかなりうまく機能します。

注意すべきことの 1 つは、アプレットのロードに時間がかかることです。実際、ブラウザがアプレットをブロックしたり、ユーザーがアクセス許可の質問で [いいえ] ボタンをクリックしたりすると、アプレットが読み込まれない可能性があります。appそのため、オブジェクトの関数をすぐに呼び出すことはおそらくできません。代わりに、アプレットがロードされたかどうかを定期的にチェックする小さなタイマーを自分で作成してください。私が通常行うことはpublic boolean isReady()、アプレット クラスで関数を定義してから、次の Javascript を使用することです。

if (typeof app.isReady=='undefined') return false;
return app.isReady();

しかし、もちろん、 Javascript からアプレットを呼び出さずにinit()およびstart()メソッドのみを使用している場合は、これについて心配する必要はありません。

于 2012-12-04T15:40:38.157 に答える
0

<applet>ここでタグを探しているのではないかと思います。

<APPLET code="MyJAVAFile.jar"></APPLET>

HTML5 の場合<object>、次のようなタグを使用する必要があります。

<object type="application/x-java-applet" code="MyJAVAFile.jar"></object>

この記事も興味深いかもしれません。読む価値があります。

于 2012-12-04T15:09:38.847 に答える