主要使用warbler这个gem。
仔细阅读warble关于jar包的描述,发现需要目录结构大概是这样的。
启动文件,也就算是ruby程序的入口代码,需要放在bin目录下面。
其他ruby文件放在lib目录下面。
但是其依赖的gem就又要折腾一番了。
大概的思路是这样的,将gem打包成jar,并且放在warble打包的jar里面。
所以这里我们先需要将依赖的gem打包,稍后再用。
如何打包依赖的gem呢?其实很简单,gem install有一个参数 -i,就是指定安装的目录的,我们可以指定位置安装所有的依赖gem。
gem install redis -i path/to/repo --no-doc --no-ri
然后用jar命令来打包就可以了。
jar -cf gem.jar repo .
上面生成了gem.jar文件,放到一边,待会用。
用warble打包自己的代码,比如打包的最后文件是proj.jar
用压缩工具比如7zip或者rar等打开jar包,会发现META-INF\lib\就是gem的位置,把之前生成的gem.jar放进去就可以了。
这样,一个jruby的程序就打包完成了。执行程序如下
java -jar proj.jar