更改Erlang的工作目录收藏
新一篇: Mnesia启动过程 | 旧一篇: 进入erlang的世界
<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>一进入Erlang目录,默认的工作路径是Erlang的bin目录或usr目录(都是erl根目录下的目录),你在别的目录的文件没法编译,那么怎么设置工作路径呢?
在Windows,有几种方法: (1)进入Erlang后通过命令更改,如下:
Erlang (BEAM) emulator version 5.6.3 [async-threads:0]
Eshell V5.6.3 (abort with ^G)
1> cd("c:/mywork").
c:/mywork
ok
2> element(2,file:get_cwd()).
"c:/mywork"
3> cd("./proj1").
c:/mywork/proj1
ok
4> cd("..").
c:/mywork
ok
5>cd(".").
c:/mywork
ok
6>pwd().
c:/mywork
ok
7>
(2)更改初始脚本文件,比如start.boot(这个是二进制的,要改的话改start.script文件,然后用systools:script2boot工具转换一下才行):
但暂时未知script语法细节,所以还不知怎么改。
注意,那本书(Programming Erlang, Page 47)里面提到的改.erlang文件实现自动配置工作目录的方法对最新的5.6.3已经不起作用,这本书主要针对5.5.2之前的版本。
(3)在erl的命令参数里使用-s 或 -run 执行命令最先使用直接在erl启动参数里添加的方式,即添加 -run c cd c;/mywork 到erl启动参数的形式不能更改成功(放到最后会出错,放到靠前的参数会造成修改路径不成功)
后来又编辑一个函数模块cd_mywork.erl,内容如下:
-module(cd_mywork).
-export([start/0]).
start() -> c:cd("c:/mywork").
编译后将cd_mywork.beam文件放到usr目录下,将erl的启动参数改成:
"C:/Program Files/erl5.6.3/bin/werl.exe" -sname master1 -s cd_mywork start -run mnesia start
就可以了(最好不要把-s cd_mywork start放到最后,因为会把这个命令的输出当成输入命令)。
发表于 @ 2008年06月17日 20:19:00|评论(0<script type="text/javascript">AddFeedbackCountStack("2558475")</script>)|收藏