1

複雑ではなく、必要なときに起動でき、十分に文書化されているJavaアプリケーションにプラグインを実装する方法はありますか?

私が探しているのは、OSGI、JPF、JSPFに似たものです。ただし、OSGIは複雑であり、JPFは十分に文書化されておらず、JSPFでは必要な場合にのみプラグインを起動することはできません。

たとえば、プラグインフォルダがあります。私が提供するインターフェースを実装することで、誰でもプラグインを作成できます。プラグインが作成された後、それを使用したい人は誰でもそれを私のアプリケーションのプラグインフォルダに置くことができ、アプリケーションはそれをロードします。

または多分、これのためのより良い言葉は「アドオン」です。

私の質問に似た質問がいくつかありますが、もっと知りたいです。これらの質問にはあいまいな答えがあります。

http://stackoverflow.com/questions/2369499/how-to-make-java-plugins?rq=1
http://stackoverflow.com/questions/7587318/how-can-i-write-my-own-plugin-in-java

わからない場合は、アプリケーションでJPFを使用する方法を教えてください。これを読むためにあなたの時間を割いてくれてありがとう。

編集:私は私の問題を解決しました。私は現在JSPFを使用しています-それは私の目的のために非常にうまく機能します。助けてくれた皆さんに感謝します。「本当の質問」を作成しなかったことをお詫びします。

4

3 に答える 3

5

JarのClassLoaderを起動すると、いつでもコードをロードまたはアンロードできます。

http://viralpatel.net/blogs/java-dynamic-class-loading-java-reflection-api/

http://www.javalobby.org/java/forums/t18345.html

http://zeroturnaround.com/blog/reloading-objects-classes-classloaders/

于 2012-07-15T07:17:20.083 に答える
2

はい、実装できます。セマンティクスのためだけにplugins、Javaでは呼び出されlibrariesます(これにより、Googleでの検索が簡単になります)。通常、Javaのライブラリは、ビルド時に.jarファイルとして表示されます。

ここにあなたを助けるためのいくつかのリンクがあります:

http://www.digilife.be/quickreferences/PT/Build%20your%20own%20Java%20library.pdf
https://stackoverflow.com/questions/3612567/how-to-create-my-own-java-libraryapi

編集とこの投稿へのコメントに返信してください:

次に、これを読む必要があります:拡張可能なソフトウェア(プラグインアーキテクチャ)を設計する方法は?

于 2012-07-15T07:10:50.003 に答える
1

このチュートリアルでは、アプリケーションにプラグインアプローチを簡単に実装する方法を示しますが、これには、アプリがEclipseRCPを利用している必要があります。「プラグインディレクトリ」を含む必要なものがすべて見つかり、オンデマンドでロードされます。RCPは他にもあるOSGI実装の1つだけではありませんが、より広いコミュニティサポートのためにRCPを使用することをお勧めします。

私が答えを書き始めた瞬間から、あなたの質問に対する多くの更新が見られます。私には、提案されたフレームワークを深く理解することを恐れてはいけないようです。あなたが新しい参加者であるという理由だけで、積み重ねたりバイクを作り直したりするのではなく、複雑であるが証明されているように見えるものを選択してください。

于 2012-07-15T07:27:04.753 に答える