ELKI は、標準のJava Classloaderを介してクラスをロードします。したがって、それらはクラス パス上になければなりません。そうしないと、ロードできません。呼び出しの例 (クラスがbin
フォルダーにあると仮定) は次のとおりです。
java -cp elki.jar:bin/ de.lmu.ifi.dbs.elki.application.ELKILauncher
パラメータは次のように解釈されます。
- この名前 (パッケージ名を含む!) を持つクラスがあれば、それが使用されます。
- それ以外の場合、ELKI は予期されるインターフェースのパッケージ名を先頭に追加しようとします。これにより、ショートカット名が有効になります。
- それ以外の場合は、(サービス ファイルからの) 既知のクラスのエイリアスがチェックされます。たとえば、ユークリッド距離には の別名があり
l2
、マンハッタンには の別名がありl1
ます。
- クラスには、パラメーターなしのコンストラクターまたはinnerが必要です。
public
public static class Parameterizer
入力支援は次のように構築されます。
.jar
クラスパス上のファイルのサービス ファイルがチェックされます。META-INF/elki/<interface>
- クラスパス上のフォルダーは開発モードになり、再帰的なリストが実行され、すべての
.class
ファイルが検査されます。これは非常に遅くなりますが、サービス ファイルを編集する必要がなくなります。検出されたクラスは、サービス ファイルにリストされているクラスの下に表示されます。
さらに、パッケージde.lmu.ifi.dbs.elki.application.internal
には、クラスパス上のすべてを検査するクラスが含まれており、たとえば、パラメーターなしのコンストラクターを持たないクラスpublic
や内部のクラスを報告しますpublic static class Parameterizer
。