JavaScirptには別のファイルに書かれたスクリプトを読み込む方法がありません。しかしスクリプトファイルが大きくなると複数のファイルに分けたくなります。 別のスクリプトファイルを読み込む(includeする)方法が必要です*1。
次の file1.js を読み込みます。
var message = 'hello wordl!';
Rhinoシェルのloadメソッド
Rhinoシェルにはloadメソッドがあります。
load("file1.js"); print(message) // hello wordl! が表示される。
loadしてJavaScriptのファイルを読み込めば、読みんだファイルで定義したオブジェクト(変数でも関数でも)が使えます。 loadメソッドはJDKに付属しているjrunscriptコマンドでも使えます。
Ant
Apache AntのScriptタスクでloadメソッドを使うと以下のエラーが出ます。
<script language="javascript"> load('file1.js'); </script> javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: TypeError: Cannot find function load.
回避手段
<script language="javascript"> eval(''+new String(org.apache.tools.ant.util.FileUtils.readFully(new java.io.FileReader('file.js')))); </script>