2011-02-02 2 views
1

JavascriptはJavaアプリケーションによって実行されます。しかし、Jqueryライブラリのようなものは実際にはString変数に収まらないほど長いです。 jquery.jsをファイルから読み込むことはできますが、.jarファイル内にパッケージする方法はわかりません。JavaアプリケーションにJavaScriptファイルをバンドルする方法は?

+0

jarファイルにJavaスクリプトをパッケージ化する理由を教えてください。それはWARではないでしょうか? – CoolBeans

答えて

1

.jsファイルをロードすることは、jarファイルから他のリソースをロードすることと同じです。一般的に、これは私が何をすべきかです:jarファイルのルートに保存されたファイルについては

SomeClass.getClass().getResourceAsStream("myFile.js") 

:側面に沿って瓶内の.classファイルを格納したファイルについては

SomeClass.getClass().getClassLoader.getResourceAsStream("myFile.js"); 

どちらのテクニックもInputStreamです。これはコードをもう少し使ってStringに変えることができます。 Read/convert an InputStream to a Stringを参照してください。

このテクニックは、リソースファイルがJavaクラスファイルと同じjarファイルにある場合に使用します。

+0

jarのルートにファイルを保存するにはどうすればいいですか? jarファイルに.classファイルをどのように格納するのですか?違いはなんですか?私は日食を使用しています。 – KJW

+0

Eclipseのデフォルトは次のとおりです。デフォルトパッケージ( "src")のファイルは、出力jarのルートに格納されます。 .javaソースと同じパッケージ内のリソースは、出力.classファイルの側になります。 – Andy

1

はあなたのJavaScriptのソースを保つことができる場所のすべての種類があります:CLASSPATHで

  • 。あなたはgetResourceAsStream()
  • でデータベースに取り込みます。はい、データベース。他のCLOBをフェッチするようにフェッチします。

個人的に私は両方のアプローチを異なる目的で使用しています。 .propertiesファイルの保存方法と正確に並行して、ビルドツリー内にJavaScriptファイルを保存することができます。個人的には、それらを.javaファイルに保存して、ビルドルールを持って、それらが.warになるようにしますが、実際にビルドエンジンがそれらを見つけることができる場所ならどこにでも生きることができます。

データベースは、Webアプリケーションが動的更新を可能にする「スクリプトポータル」をより簡単にサポートできるため、スクリプトを保存するのに最適な場所です。これは非常に強力な機能です。特に、デプロイメント操作のようなものがなくても、「ライブ」のアップデートを多かれ少なかれ展開できるため、Javascriptモジュールがより重要なビジネスロジックの一部を制御するようにWebアプリケーションを作成する場合は特にそうです。

多くのことを助ける1つのことは、あなたが使用しているすべてのアクセスパスをJavascript(つまり、Sunのjavax.scriptやRhinoのバインディングのいずれか)に「ラップする」ユーティリティコードを作成することです。この時点では、個人的には私はまっすぐなRhinoと一緒に行きたいと思います。なぜなら、実際には、どちらかといえば大きな違いはありませんし、Sunのものは、現在の気候ではおそらく、しばらくの間は更新が表示されません)。ユーティリティラッパーを使用すると、最も重要なことの1つは、JavaScriptインフラストラクチャからのその他の JavaScriptファイルを(どこから来ても)インポートすることが可能になることです。そうすれば、JavaScriptツールライブラリを開発することができます(もちろん、オープンソースライブラリを採用することもできます)。また、ビジネスロジックスクリプトでインポートして使用することもできます。

関連する問題