如何将javascript文件捆绑到Java应用程序中?

如何将javascript文件捆绑到Java应用程序中?,java,javascript,jquery,Java,Javascript,Jquery,Javascript由Java应用程序执行。然而,像Jquery库这样的东西实在太长,无法放入字符串变量中。我能够从文件中读取jquery.js,但不确定如何将其打包到.jar文件中。可以在各种地方保存JavaScript源代码: 在类路径中。您可以使用getResourceAsStream() 在数据库中。是的,数据库。你拿它们就像你拿任何其他CLOB一样 就个人而言,我使用这两种方法的目的不同。您可以在构建树中保留JavaScript文件,其方式与保留.properties文件的方式完全

Javascript由Java应用程序执行。然而,像Jquery库这样的东西实在太长,无法放入字符串变量中。我能够从文件中读取jquery.js,但不确定如何将其打包到.jar文件中。

可以在各种地方保存JavaScript源代码:

  • 在类路径中。您可以使用
    getResourceAsStream()
  • 在数据库中。是的,数据库。你拿它们就像你拿任何其他CLOB一样
就个人而言,我使用这两种方法的目的不同。您可以在构建树中保留JavaScript文件,其方式与保留.properties文件的方式完全相同。就我个人而言,我只是将它们保存在.java文件中,然后有一个构建规则来确保它们最终出现在.war中,但它们确实可以存在于构建引擎可以找到它们的任何地方

数据库是保存脚本的好地方,因为它使web应用程序更容易支持允许动态更新的“脚本门户”。这是一个非常强大的工具,特别是如果您精心设计web应用程序,让Javascript模块控制一些更重要的业务逻辑,因为您可以或多或少地“实时”部署更新,而无需任何部署操作


一件非常有用的事情是创建一些实用程序代码来“包装”您正在使用的Javascript访问路径(即Sun“javax.script”东西,或者Rhino绑定;在这个时候,我个人会选择straight Rhino,因为不管怎样,它真的没有多大区别,而Sun的东西被一个相当旧的和有车的Rhino版本卡住了,在当前的气候下,可能在一段时间内看不到更新)。使用实用工具包装器,最重要的事情之一是使JavaScript代码(无论来自何处)能够从服务器基础结构导入其他JavaScript文件。通过这种方式,您可以开发JavaScript工具库(当然,也可以调整开源库),并让业务逻辑脚本导入和使用它们。

加载.js文件与从jar文件加载任何其他资源相同。一般来说,我是这样做的:

对于存储在jar文件根目录中的文件:

 SomeClass.getClass().getClassLoader.getResourceAsStream( "myFile.js" );
对于存储在jar中.class文件旁边的文件:

 SomeClass.getClass().getResourceAsStream( "myFile.js" )
这两种技术都为您提供了一个
输入流
。这可以转化为一个
字符串
,代码需要做更多的工作。看


此技术适用于资源文件与java类文件位于同一个jar中的情况。

为什么要将java脚本打包到jar文件中?这不是一场战争吗?我如何将文件存储在jar的根目录中?如何将.class文件存储在jar中?有什么区别?我使用的是eclipse,eclipse的默认设置是:默认包(“src”)中的文件存储在输出jar的根目录中。与.java源代码位于同一个包中的资源最终与output.class文件一起结束。