如何在独立的模块/处理程序中添加.app.src文件.erl文件

问题描述

我正在处理erlang应用程序。我想从src /文件夹编译并运行一个.erl文件,该文件正在使用.app.src文件中的环境变量。

所以我的要求是在处理程序中添加.app.src文件,并独立编译/运行.erl文件。如何实现相同的目标。

解决方法

您可以使用application:load/1来加载.app文件而不启动它。

,

我的答案是先前答案(Jose M)的补充。想象一下处理程序模块(handler.erl)如下:

-module(handler).
-export([start/0]).
start() ->
  R1 = application:load(dynconf),io:format(user,"After app load.   R2=~p~n",[R1]),Test = application:get_env(dynconf,test),"After config changed. Test=~p~n~n",[Test]).

和文件dynconf.app(将空闲应用程序定义为仅用于环境元组定义):

{application,dynconf,[{description,"dynamically (on fly) change configuration"},{vsn,"0.0.1"},{registered,[]},{applications,{modules,{mod,{dynconf,[]}},{env,[{test,7}]}]}.

然后在包含两个以上文件的文件夹中运行Erlang shell:

1> c("handler.erl").
{ok,handler}
2> handler:start().
After app load.   R2=ok
After config changed. Test={ok,7}

您从dynconf.app文件中获得了环境var test = 7。钢筋使用dynconf.app.src生成dynconf.app并将其复制到ebin文件夹中。但是对于单独的* .erl文件(没有钢筋项目),您可以手动创建* .app文件。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...