2

複数のプラットフォーム (Windows、Linux、Mac) 用にビルドされた外部 C コードがいくつかあり、プラットフォームに関係なくこの .jar をライブラリとして使用できるように、それらをすべて単一の .jar にパッケージ化したいと考えています。

これにより、同じ単一の外部ライブラリを使用して、Java プロジェクトをコンピューターからコンピューターに渡すことができます。

JNI を使用してコードを呼び出す既存のクラス ファイルがあり、それらのクラスはプラットフォームごとに異なるものです。現在の状態では、その特定のプラットフォームのネイティブ関数を呼び出すさまざまなクラスで jar を交換しています。

Ant/Maven を使用したり、抽象化レイヤーを作成したりせずに、正しいクラス ファイルを動的にロードできるようにパッケージ化する方法はありますか?

4

1 に答える 1

-1

ネイティブファイルをjarファイルにパックすることはできません。ただし、クラスファイルは通常のクラスファイルのようにすることができます。

必要に応じて、すべてをzipファイルにパックできますか?代わりに。

正しいファイルをロードするには:Class.forName()で十分です。ただし、ファイルがクラスパスに含まれていることを確認するか、URLから検索するようにクラスパスを動的に変更してください

于 2012-10-19T18:50:24.390 に答える