0

Javaでいくつかのクラスを作成し、それらを「org」名前空間の単一のパッケージに結合しました。RingoJSからそれらにアクセスするにはどうすればよいですか?

パッケージをRingoの「src/org」ディレクトリにコピーする必要がありますか、それともスクリプトからクラスパスを動的に変更する必要がありますか?

4

1 に答える 1

2

RingoJS でカスタム Java クラスにアクセスする方法がようやくわかりました。目の前で見たことがないなんて、本当にバカだったに違いない。

Rhino でカスタム Java クラスにアクセスするには、それらを Java クラスパスに追加する必要があります。特に、プログラミングに関する知識のないエンド ユーザーが、特定の Java クラスをクラスパスに含める必要がある CommonJS パッケージをインストールしようとする場合は、面倒です。私が間違っている場合は修正してください。Tuskのようなパッケージ マネージャーがそれを行うことができるかもしれません。そのような機能についてお知らせいただければ幸いです。ただし、私の知る限り、Java クラスや jar ファイルをクラスパスに追加するのはエンド ユーザーの責任です。

RingoJS はこれを大幅に簡素化します。クラスパスに JAR ファイルまたはディレクトリを追加するグローバル関数addToClasspath(pathName)を提供します。したがって、CommonJS パッケージのルート ディレクトリに Java パッケージまたは JAR ファイルがあり、JavaScript ファイル自体で addToClasspath 関数を使用して、それを自動的にクラスパスに追加することができます。さらに、RingoJS lib ディレクトリ内のすべての JAR ファイルは、デフォルトでクラスパスに含まれています。これにより、問題が大幅に簡素化されます。

プログラミングのために、JAR ファイルを RingoJSlibディレクトリに追加できます。ただし、お勧めしません。カップリングを減らし、RingoJS lib ディレクトリをきれいに保つ (将来の名前空間の問題を防ぐ)。また、エンド ユーザーが簡単にインストールできるように、addToClassPath 関数を使用することをお勧めします。おそらく、他の Rhino ベースの CommonJS 実装にも実装する必要があります。

于 2011-08-29T14:04:11.917 に答える