投稿日: Aug 10, 2017 5:17:17 PM
LGPLのライブラリを使う場合は動的リンクしたほうが。
ということで動的にライブラリを利用するにはこれしかありません。ので一応おさえて置きます。
あんまり使わない(使いたくない)のでよく忘れるのです。
String strClassName = "package.ClassName";
String strMethodName = "MethodName";
Class c = Class.forName(strClassName);
Method m = c.getMethod(strMethodName);
m.invoke(c.newInstance());
とりあえずリフレクションを使うと遅くなる。とにかく遅い。
ならばLGPLに従ってリバースエンジニアリングを許可した方がいいのでは? とも思う。
ライブラリを差し替えたり出来るようにするためリフレクション以外に何かしらの設定ファイルも必要になる。
XMLか何かでライブラリへのリンク設定を記述してやるなりなんなり。
何にしても面倒くさい。
ライブラリを静的にリンクした場合、ライセンスはLGPLになる。
ライブラリを動的にリンクした場合は別のライセンスを適用することができる。
ライブラリの改変がある場合ソースコードを公開する必要がある。(要確認)
LGPLは利用者がソースコードにアクセス出来るようにバイナリ等を入手可能な状態にしなくてはならない
(ソースコードを公開しなければいけないわけではない)
また、リバースエンジニアリングを禁止してはならず、商用利用も許可する必要がある。
LGPLのライブラリ等を利用する場合、利用している旨をどこかに記載する必要がある。