创建Erlang的Application

我们写完一组功能模块后(在erlang中,以module为单位),总是希望这一组模块,可以打包成一个应用,作为一个单独的整个,可以启动,停止,象mnesia一样。并可以在其它应用中引用。如何来做到这一点呢。每一个应用都是通过application:start系列函数来启动,application:stop可以停止一个应用。

一个应用需要一个.app文件来描述,主要描述它包括哪些文件,参数等。

如果在启动erlang的VM时就启动一个应用呢,实际上,我们是没有办法通过VM的参数来直接启动一个自定义应用,有些参数如:start_sasl可以启动一些内部的标准的build-in应用,但是我们可以给VM一个执行入口,这就象C语言或是java语言的main函数一样,VM启动时,执行这个程序的入口点,这样就可以在这个入口中执行启动应用的操作。

这个入口点通过参数-s 来指定。下面我们来看一个例子:

1.   erl  -s erlycomet_demo 
     这个参数指定,VM启动后,调用erlycomet_demo:start()无参函数

2.   在erlycomet_demo:start()函数中,我们写如下代码: 
        application:start(erlycomet_demo).

上面这句话,启动一个erlycomet_demo的应用,这里,VM就会在搜索目录中找到erlycomet_demo.app这个文件,如果不到,报错,如果找到,则按这个文件中的指示,启动erlycomet_demo应用。这一部分可以参看相关的文档,简单的,在erlycomet_demo中一搬有一个参数{mod,{mod_name_app,[]}} 
        这个参数指示,调用mod_name_app:start(_type,Argu)这个函数。以erlycomet_demo为例,这个调用进入到erlycomet_demo_app:start(_type,Argu)中,

3. 在erlycomet_demo_app的start(_type,Argu)中,启动 一个supervisor进程,进而启动子进程。如下所示: 
        erlycomet_demo_sup:start_link(Args).

了解了,我们是通过application为单位来打包应用的,那么我们如何才能共用应用呢??比如,我们如何在应用A中使用应用2的功能呢??答应是:以应用为单位来进行引用,例如:我们要便用mnesia功能,我就就调用mnesia:start()或是在应用A的application中指定,要启动mnesia。  在OPT中,有很多应用都是相互独立,而又相互引用的。比如:mnesia, crpyto,inet 等。

时间: 2025-01-07 06:56:15

创建Erlang的Application的相关文章

Dynamics AX 2012 R2 无法创建类"Excel.Application"的COM对象

    Reinhard在做一个Excel导入项目时,发现X++代码一旦执行到Excel组件部分,就会报如下错误: 无法创建类"Excel.Application"的COM对象.请确保在计算机""上已正确注册该对象.     根据错误提示,我们先去组件服务中,查找名为Microsoft Excel Application的COM组件.     Reinhard并没有在COM组件列表中,找到该COM组件.我们知道,Microsoft Excel Application

iOS开发之 Xcode 6 创建一个Empty Application

参考链接http://jingyan.baidu.com/article/2a138328bd73f2074b134f6d.html Xcode 6 正式版如何创建一个Empty Application 本文介绍在Xcode 6正式版,如何将一个Single View Application变为你熟悉的Empty Application.此方法对OC.Swift语言开发均适用. 示例 运行Xcode 6,创建一个Single View Application工程.   创建好后,把工程目录下的M

Xcode 6.1 正式版如何创建一个Empty Application

Xcode 6 正式版如何创建一个Empty Application | 浏览:1962 | 更新:2014-11-05 20:40 1 2 3 4 5 6 7 分步阅读 Xcode 6 正式版里面没有Empty Application这个模板,这对于习惯了纯代码编写UI界面的程序员来说很不习惯. 有网友给出了一个解决方法是,把Xcode 6 beta版里面的模板复制过去. 但是,如果性急的你已经把Xcode 6 beta彻底删除,网上又找不到Empty Application模板的下载,怎么办

SharePoint User Profile Services Application之(一) 创建UPS Service Application

创建User ProfileService Application User Profile Service Application是SharePoint2013的重要组成部分,提供用户属性的同步,Mysite的创建,并为社交功能提供支持. 下面介绍如何创建一个User Profile Service Application.首先以Farm 管理员账户登录到CentralAdministration,找到Manage Service Application: 进入之后,新建: 在新建页面,输入A

理解Erlang/OTP - Application

http://www.cnblogs.com/me-sa/archive/2011/12/27/erlang0025.html 1>application:start(log4erl). 我们就从这一行命令开始说起吧,回车之后可以把log4erl应用程序启动起来.Erlang/OTP中的能完成特定功能集合的组件被称为application. ,application是Erlang代码和功能组织的形式之一([Erlang 0015]Erlang OTP设计原则).application的设计目的是

Xcode6.0+创建一个empty application步骤:

1.选择模版Single View Application 2.将Main.storyboard 和LaunchScreen.xib删除 3.在Info.plist中,把Launch screen interface file base name 以及Main storyboard file base name删除 4.点击在target里的Use Asset Catalog,对话框里直接点击Migrate 5.在AppDelegate的第一个方法里面添加代码: OC: (1).创建window

Xcode 6 正式版如何创建一个Empty Application

Xcode 6 正式版里面没有Empty Application这个模板,这对于习惯了纯代码编写UI界面的程序员来说很不习惯. 有网友给出了一个解决方法是,把Xcode 6 beta版里面的模板复制过去. 但是,如果性急的你已经把Xcode 6 beta彻底删除,网上又找不到Empty Application模板的下载,怎么办?总不用重新把几个G的Xcode 6 beta重新下一遍吧? 本文介绍在Xcode 6正式版,如何将一个Single View Application变为你熟悉的Empty

《转》Xcode 6 正式版如何创建一个Empty Application

Xcode 6 正式版里面没有Empty Application这个模板,这对于习惯了纯代码编写UI界面的程序员来说很不习惯. 有网友给出了一个解决方法是,把Xcode 6 beta版里面的模板复制过去. 但是,如果性急的你已经把Xcode 6 beta彻底删除,网上又找不到Empty Application模板的下载,怎么办?总不用重新把几个G的Xcode 6 beta重新下一遍吧? 本文介绍在Xcode 6正式版,如何将一个Single View Application变为你熟悉的Empty

Erlang 中application 导出接口

ensure_all_started(Application) -> {ok, Started} | {error, Reason} ensure_all_started(Application, Type) -> {ok, Started} | {error, Reason} Types Application = atom() Type = restart_type() Started = [atom()] Reason = term() ensure_started(Applicatio