2011-02-02 86 views
1

JavaScript是由Java應用程序執行的。但是,像Jquery庫這樣的東西實際上太長而不適合一個String變量。我能夠從文件中讀取jquery.js,但不知道如何將其打包到.jar文件中。如何將JavaScript文件捆綁到Java應用程序中?

+0

你爲什麼要打包一個jar文件中的java腳本?它不應該是戰爭嗎? – CoolBeans 2011-02-02 23:38:09

回答

1

加載.js文件與加載jar文件中的其他資源相同。一般來說,這是我做的:

對於存儲在JAR文件的根目錄的文件:

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

沿着側儲存在罐子.class文件的文件:

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

這兩種技術給你一個InputStream。這可以變成一個String與代碼更多的工作。見Read/convert an InputStream to a String

此技術適用於您的資源文件與java類文件位於同一個jar文件中。

+0

如何將文件存儲在jar的根目錄中?如何在jar文件中存儲.class文件?有什麼不同?我正在使用eclipse。 – KJW 2011-02-03 00:10:00

1

有各種各樣的地方,你可以保持你的JavaScript來源:

  • 在CLASSPATH。你可以用getResourceAsStream()
  • 取數據庫。是的,數據庫。您可以像抓取任何其他CLOB一樣抓取它們。

就我個人而言,我已將兩種方法用於不同的目的。您可以將JavaScript文件保存在構建樹中,其方式與保存.properties文件的方式完全相同。就我個人而言,我只是將它們放在.java文件中,然後有一個構建規則以確保它們最終位於.war中,但它們確實可以在您的構建引擎可以找到的任何位置生活。

數據庫是保存腳本的好地方,因爲它使得您的Web應用程序更容易支持允許動態更新的「腳本門戶」。這是一個非常強大的工具,尤其是如果您製作Web應用程序以便Javascript模塊控制一些更重要的業務邏輯,因爲您可以部署更新或多或少的「現場」,而無需進行任何部署操作。

有一件事可以幫助你創建一些實用程序代碼來「包裝」你使用Javascript的任何訪問路徑(也就是說,無論是Sun的「javax.script」還是Rhino的綁定)在這個時間點上,我個人會選擇直犀牛,因爲它無論如何都不會有太大的變化,而Sun的這些東西都會卡住一個相當古老而又有問題的Rhino版本,暫時沒有看到更新)。使用實用包裝,最重要的事情之一就是讓您的JavaScript代碼(無論它來自何處)從您的服務器基礎架構導入其他 JavaScript文件。這樣您就可以開發JavaScript工具庫(或者,當然,也可以調整開源庫)並讓您的業務邏輯腳本導入並使用它們。

相關問題