Javaアプリケーションで、後でプラグインで機能追加を行えるソフトを作成しようと考えています。
しかしプラグインが使用できるソフトウェアを作った経験が無く、まず、どうすればプラグインを認識するかなどの基本的なプログラミングの技術がありません。
プラグインの仕組みなど、こういったソフトウェアの作成方法を教えていただけますでしょうか?
JBuilderで作成予定です。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

ジャストシステムの一太郎Arkは100%PureJavaのアプリケーションで、プラグイン機能を搭載しています。


それに、プラグインの仕様はもとより、一太郎Arkのソースそのものも無料で公開していますので、大変参考になると思います。

参考URL:http://www.justsystem.co.jp/ark/
    • good
    • 0
この回答へのお礼

まだ、Javaを始めたばかりで全てを理解しているわけではありませんが、
とりあえずクラスローダーがキーワードであることがわかってきました。
どうも、ありがとうございました。
はっきりいって、これからが長い道のりです…。

お礼日時:2001/07/02 19:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q趣味 VS ホビー、どう理解したらいいのですか?

最近気づいたのですが、このQ&Aサイトのカテゴリーには
【趣味】があり、その内訳に[ホビー]、[その他(趣味)] が
同列にあり、更に[ホビー]の内訳の中には{その他(ホビー)}
というのもあります。

[ホビー]は【趣味】の中に入る、というのは確かのようですが、
趣味とホビー、何か違いがあるのでしょうか。


【趣 味】
- ・・・・・・・・
- ・・・・・・・・
- ・・・・・・・・
- [ホビー]
ーーー - ・・・・・・・・
ーーー - ・・・・・・・・
ーーー - ・・・・・・・・
ーーー - {その他(ホビー)}

- [その他(趣味)]
   

Aベストアンサー

こんばんは。

面白い質問ですね。
なるほどと思い私も考えてしまいました。

読書、音楽、絵画鑑賞・・・これらはいずれも趣味でしょうね。
中に趣味の域を超えて専門的な知識、技術を必要とする
趣味もあります・・・。
私はこれらを「ホビー」と言うのかなと思います。

模型に限らず「ホビー・ショップ」があるのはそのためでしょう。

QFireFox プラグイン作成のマニュアル

firefoxのプラグインを作成したいと考えていますが、マニュアル的なものや、参考になるサイトは無いでしょうか。

「検索プラグインの作成法」以外でお願いします。

Aベストアンサー

プラグインなのか拡張なのか、プラグインであればどのフォーマットに対するプラグインなのか、拡張であれば何を目的とした拡張なのかを書くと的確な回答をもらえる可能性が高くなると思います。
http://ja.wikipedia.org/wiki/%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD_(Mozilla)#.E7.AA.93.E3.81.AE.E6.9D.9C.E3.80.8C.E3.83.97.E3.83.A9.E3.82.B0.E3.82.A4.E3.83.B3.E3.80.8D.E5.95.8F.E9.A1.8C

Q電撃ホビーとホビージャパン

電撃ホビーとホビージャパン、
それぞれの特徴を教えていただけないでしょうか?

どちらかに絞って買いたいのですが、ざっと立ち読みをしただけでは
違いがちょっと分からないので…。

詳しい方のアドバイスお待ちしております。

Aベストアンサー

ガンプラを中心に超合金やスパロボ、ゾイドなどの情報があるのが電撃ホビーマガジン、やはりガンプラ中心ではありますが、その時のトレンドで特集が変わる、また模型メーカーや模型店の広告が多いのがホビージャパンってところですね。
タマにガンプラで特集がかぶるときがありますが、作例の出来では若干ホビージャパンに軍配が上がるかも。

またこれはかなり主観が入りますが、読後の印象が電撃ホビーマガジンの方がうすいように感じました。
その分オマケで勝負している感もありますが。

Qプラグイン式のツールを作成するには?

Javaに限らずなのですが、今回、私が利用しようとしている言語が
Javaなのでこちらに投稿させて頂きました。

ソフトウェアで、よくプラグイン式のものを見かけます。
フリーウェアで言えばEclipse、GPLライセンスのWebツールなら
XOOPS、MovableTypeなど(ちょっとイメージ違うかもしれませんが)。

そういったプラグイン式のアプリケーションを作成するには
一体どうしたら良いのでしょうか?
考えてはみたものの、方法が見つかりません。

1.ディレクトリ走査でファイルを探査?
  めちゃくちゃ時間かかりそうな予感。
2.見つけたとしてもどうやってメインプログラムから呼び出すのか?
  そのファイルがある時もない時も可能性がある。

勿論、プラグインの作成方法は固定であったとしても、
やはりどう呼び出すのか見当も付きません。

どなたかご教示願います。

Aベストアンサー

ちょっと面白そうだったので、簡単なサンプルを作ってみました。
 これは、Sampleクラスと同じ場所にあるプラグイン・クラスを読み込んで実行するサンプルです。プラグインは、MyPluginInterfaceをimplementsしたクラスとして作ります。Sampleは、起動時に、同じディレクトリ内にあるMyPluginInterface実装クラスを検索し、そこにあるプラグイン機能の実装メソッドdoPluginを実行します。
 ここではサンプルとしてTestPluginClassというのを作ってありますが、実際にimplements MyPluginInterfaceしたクラスを作って配置してみてください。それらをすべて自動的に読み込んで実行するはずです。

まぁ、実際にはプラグインはJARになっていたり、所定のディレクトリに保管したり、メニューなどに組み込んで必要に応じて実行するようになっていたりするでしょうが、「特定の場所から、プラグイン用のインターフェイスを実装したクラスを探し出し、そこからメソッドを呼び出してプラグインを実行する」ということの基本はこんな感じで作れると思います。

// メインプログラム。
import java.io.*;

public class Sample {

public static void main(String[] args) {
String dir = System.getProperty("user.dir");
try {
File f = new File(dir);
String[] files = f.list();
for (int i = 0; i < files.length; i++) {
if (files[i].endsWith(".class")){
String classname = files[i].substring(0,files[i].length() - ".class".length());
Class c = Class.forName(classname);
System.out.println("CHECK: " + classname);
Class[] ifs = c.getInterfaces();
for(int j = 0; j < ifs.length; j++){
System.out.println("\tCHECK: " + ifs[j]);
if (ifs[j].equals(MyPluginInterface.class)){
System.out.println("**this is MyPlugin**");
MyPluginInterface plugin = (MyPluginInterface)c.newInstance();
plugin.doPlugin(); // プラグインの機能実行
}
}
}

}
} catch(Exception ex){}
System.out.println("END.");
}
}

// プラグイン用インターフェイス
interface MyPluginInterface {
public void doPlugin();
}

// サンプルのプラグイン・クラス
class TestPluginClass implements MyPluginInterface {

public void doPlugin(){
System.out.println("******TestPluginClass******");
System.out.println("doPlugin start!");
System.out.println();
System.out.println("これは、TestPluginClassを実行したものです。");
System.out.println();
System.out.println("******TestPluginClass******");
System.out.println();
}
}

ちょっと面白そうだったので、簡単なサンプルを作ってみました。
 これは、Sampleクラスと同じ場所にあるプラグイン・クラスを読み込んで実行するサンプルです。プラグインは、MyPluginInterfaceをimplementsしたクラスとして作ります。Sampleは、起動時に、同じディレクトリ内にあるMyPluginInterface実装クラスを検索し、そこにあるプラグイン機能の実装メソッドdoPluginを実行します。
 ここではサンプルとしてTestPluginClassというのを作ってありますが、実際にimplements MyPluginInterfaceしたクラスを...続きを読む

Q模型屋とホビーショップの違い

タウンページを見ると模型屋とホビーショップは分けられるのですが、この二つの店の違いってあるのでしょうか?
模型屋=ホビーショップだと思っていたのですが、どうやら違うような気がして・・・

Aベストアンサー

模型屋さんは模型(プラモデルや鉄道模型、ラジコン)のキットや塗料、工具類のお店で軸足を模型に置いている(と店主が考えている)お店

ホビーショップは模型屋さんに有るもの以外にもカード類、ファンシーグッズ、ミニカー類、ガシャポン類各種フィギュア類などのコレクション製の高いおもちゃを総合的に扱っている(と店主が考える)お店

なのではないでしょうか???

もちろん、模型関係だけではあまり売り上げがあるはずも無く、幅広い商品を置いている模型屋さんもありますし、そこいらの模型屋さんよりも模型類の品揃えのいいホビーショップもざらですけどね

QjQueryで要素を複製するプラグインの作成

jQueryのプラグインを作成しています。
やりたいことは、追加ボタンをクリックしたら、指定要素を複製していくというものです。

下記のようにプラグインを作成しましたが、
なぜか要素(clone_base1)が消えてしまいます。

原因もわからず困っています。
どのようにしたらよいのでしょうか。

(function(jQuery) {
jQuery.fn.clone = function(options) {
//defaultの値
var options = jQuery.extend({
reset_form: true
,clone_base : "clone_base1"
}, options);

return this.each(function() {
jQuery(this).click(function(){
//元となるボックスを複製
jQuery("."+options.clone_base).clone().appendTo("."+options.clone_base);
});
});
};
})(jQuery);

Aベストアンサー

#1です。

失礼しました。
どうやら、こちらのほうが普通らしいですね。

$.fn.extend({
 hoge: function(){
  alert("fuga");
 }
});

QNECの「スマートホビー」での画像取り込みについて

NECパソコンにプリインストールる画像編集ソフト「スマートホビー」についての質問です。デジカメで使用しているメモリーカード(SDカードなど)からスマートホビーのソフトでPC内に画像を取り込んだ場合には、元々のカード内のデータ(画像)はカードに残っているのでしょうか?(画像のコピーになるのか、或いは移動になるのかという質問です) 知人からの相談のため、申しわけありませんが、今現在スマートホビーのヴァージョン等は分かりません。宜しくお願いします。

Aベストアンサー

画像はメモリーの中に残っていますので、PCに取り込んだ後でもカメラで見る事が出来ます。

只取り込み済みの画像は以降スマートホビーで取り込んでもその後撮影
分のみがPCに取り込まれます。

もう一度全部取り込みたい時はスマーホビーでなくマイコンピューターからカメラのフォルダーを開いて
そこから通常のコピー、貼り付けで取り出せます。

QJBuilderを使って、クラスファイルだけで、アプリケーションの実行結果を見る方法

こんにちは、いつもお世話になっています。
JBuilder 2005 Fundation を使って、クラスファイルだけで、アプリケーションを動かし、動作をみる方法が分かりません。
学校の課題で、先生から、10個のクラスファイルを配布され、その他に5個のソースファイルを配布されています。 この課題にとりかかる前に、「先ず、この10個のクラスファイルを使って、アプリケーションを実行して、動作をみなさい。」という事だったのですが、その方法が分かりません。

JBuilderでソースファイルの無いプロジェクトを作り、10個のクラスファイルを直接プロジェクトのフォルダに入れて、実行させてみたのですが、、、エラーが表示されてしまいます。
これはソースファイルの無いプロジェクトなので、クラスファイルを入れるフォルダもありません。
クラスファイルを入れるフォルダは、ソースファイルをコンパイルさせると、自動的に作られるんですよね?
そして、その中にコンパイルされたクラスファイルが入っていく。
でも、今あるのは、クラスファイルだけなんです。。。

JBuilderを使って、クラスファイルだけで、そのアプリケーションの動作を見たいのですが、どうしたらいいのでしょうか?
よろしくお願いします。

こんにちは、いつもお世話になっています。
JBuilder 2005 Fundation を使って、クラスファイルだけで、アプリケーションを動かし、動作をみる方法が分かりません。
学校の課題で、先生から、10個のクラスファイルを配布され、その他に5個のソースファイルを配布されています。 この課題にとりかかる前に、「先ず、この10個のクラスファイルを使って、アプリケーションを実行して、動作をみなさい。」という事だったのですが、その方法が分かりません。

JBuilderでソースファイルの無いプロジェクトを...続きを読む

Aベストアンサー

JBuilderは要りませんよ。まあ、JBuilderが入っているならJavaコマンドもインストールされている筈なので、消す必要もありませんが。
javaが正しくインストールされているなら、コマンドプロンプトから

java -version

と打つと、インストールされているJavaのバージョンがでるはずです。
Javaコマンドは、.classファイルを実行するコマンドです。

10個あるファイルのうち、それぞれ全部実行出来る、と言われましたか?それとも、どれか一つですか?
聞いていなくても、全部実行すればいいんですが、とにかく

java ファイル名.class

と打てばそのclassファイルが実行されるはずです。

QNECのPCで、USBを差し込むとスマートホビーが

USBを差し込むと、スマートホビーがたちあがってきます。
以前は、そういうことがなく、USBをさしこんでも、普通にファイルが開くようになっていたのですが。。。
このスマートホビーが立ち上がってこない方法をおしえていただけませんか。

Aベストアンサー

スマートホビーの設定を変更して下さい。

http://121ware.com/qasearch/1007/app/answerinfo_main.jsp?006713
1.SmartHobby 2.0 の設定を変更する
【操作手順】4
を参考に「OS標準の設定に戻す」にして下さい。

QJBuilderアプリ作成でタイトルバーを消すには?

タイトルとおりなのですが、アプリケーション起動時にタイトルバー(最大/最小ボタンや×ボタンがあるバー)を消したいのですがフレームのプロパティーにはそれらしい物がありません。なにか方法があるのでしょうか?

Aベストアンサー

Java2SDK1.4以上だったら可能ですよ。

Frame frame=new Frame();
frame.setUndecorated(true);
frame.setSize(100,100);
frame.setVisible(true );

これでタイトルバーは表示されません。
それ以前のバージョンでは無理だと思います。


人気Q&Aランキング

おすすめ情報