更改Erlang的工作目录

来源:互联网 发布:股票复权数据接口 编辑:程序博客网 时间:2024/04/29 01:39

一进入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放到最后,因为会把这个命令的输出当成输入命令)。