他のJavaScriptファイルをロードする必要があるJavaScriptプログラムをRhinoで書いています。ただし、組み込みload()
関数は現在のディレクトリに対してファイルを相対的にロードするため、スクリプトの場所に対して相対的にファイルをロードする必要があります(プログラムを任意のディレクトリから呼び出すことができるようにするため)。
他の言語では、のようなものを使用しますがdirname(__FILE__) + "/path/file"
、Rhinoにはない__FILE__
ようです。スローされた例外から現在のファイルを抽出しようとしましたが、空です。つまり、次のコードは「true」を出力します。
try {
throw new Error();
} catch (e) {
print(e.fileName === "");
}
インタプリタのソースを調べてJava-JavaScriptブリッジを使用しようとしましたが、まだ役立つものは見つかりませんでした(おそらくもっと調べます)。
相対パスでファイルをロードする方法のヒントはありますか?