在linux环境下,erlang通过systools:make_script("",[])和systools:make_tar()命令生成镜像包,先安装镜像包,安装镜像包的过程,即通过替换erl.src中的路径,然后重新输出到erl完成,继而通过erl -sname cache -boot ../releases/0.1.0/start完成相关应用的启动。而在windows下,打包后要想移植到其他电脑上能够运行,需要经过以下两步:
第一、修改erts-5.9.1/bin/erl.ini中的Bindir和Rootdir,Rootdir对应了应用名.script中的$ROOT,从而能够找到相关的lib下的包;
第二、通过erl -boot ..进行加载启动。
为了能够更方便地启动,现将第一和第二步进行合并,通过bat脚本,双击后直接完成,脚本如下:
@echo off
color 0a
::修改erts/bin/erl.ini中的路径,安装erts
setlocal enbledelayedexpansion
::获取当前路径
set rootdir=%~dp0
::获取erts的文件名
dir e* /b > temp.txt
set /p erts =<temp.txt&del temp.txt
::拼出erts的bin所在的路径
set bindir=%rootdir%%erts%\bin
::将路径中的\改为\\
set rootdir=!rootdir:\=\\!
set bindir=!bindir:\=\\!
::删除bin路径下的erl.ini,用替换后的新路径重新生成新的erl.ini
cd %bindir%
del erl.ini
echo [erlang] >>%bindir%\\erl.ini
echo Bindir=%bindir% >>%bindir%\\erl.ini
echo Progname=erl >>%bindir%\\erl.ini
echo Rootdir=%rootdir% >>%bindir%\\erl.ini
::启动应用
erl -boot ..\..\releases\0.1.0\start