2012-07-16 11 views
5

jarファイルからクラスをロードしてからオブジェクトを作成することはできますか?Java - Jarファイルからクラスを作成する

注:jarファイルは、プログラムのコンパイル時には存在しませんが、後でユーザーによって追加され、ユーザーがプログラムを開始したときに読み込まれます。

私のコードはこれが好きです:ユーザーには、コンパイルされたJavaクラスだけが入ったjarファイルがあります。ユーザーはこのjarファイルをディレクトリに置いて、ディレクトリを調べてこのjarファイルを見つけるプログラムを起動します。次に、このjarファイルをロードしてクラスを作成し、そこからオブジェクトを作成して配列に追加します。

jarファイル(java.ioファイルとしてロードされている)からクラスを作成し、そのクラスからオブジェクトを作成してオブジェクトを作成する以外はすべてがダウンしています。

助けが必要ですか?ありがとう。

答えて

4

Class#forNameClass#newInstanceの方法をお探しの場合は、

This link(リンクから抽出された)その名を知らクラスの初期化についての良い例を提供します。あなたのため

Class c = Class.forName("com.xyzws.AClass"); 
AClass a = (AClass)c.newInstance(); 

良い例このような状況のためには、(リンクも指摘するように)JDBCを使用しています接続するdbエンジンドライバのオブジェクトを初期化します。このドライバはプロジェクトにインポートされたjarファイルから来ていることを覚えておいてください。これはMySQL、Oracle、MSSQL Serverのjarファイルでもかまいません。ドライバクラス名を指定するだけで、JDBC APIとjarがSQLの処理を行います。

Class.forName("org.gjt.mm.mysql.Driver"); 
Connection con = DriverManager.getConnection(url, "myLogin", "myPassword"); 

また、動的にjarファイルをロードし、この特定の問題のために、質問と回答があります。

0

単純には?ユーザがjarファイルをクラスパスに置くことができます。
あなたのコードは、JVMによってロードされるクラスにアクセスする必要がありますそのように

編集:Luiggiの答えは、jarファイルをクラスパス

+1

であるが、アイデアは、ユーザーがjarファイルを作ることであることを前提としていたとしても@彼にではなく、プログラムにロードされる –

関連する問題