[erlang-questions] Specifying directories that contain .beam files

Joe Armstrong <>
Thu Oct 25 22:02:08 CEST 2012


ERL_LIBS will not work. It will only find the beam files if the
directories under
ERL_LIBS follow a "regular" OTP /src/ebin etc structures

Since a beam file could in principle be in *any* directory this won't work.

The code path is set by editing a file ${HOME}/.erlang or
<directory where you started erlang>/.erlang

My ${HOME}.erlang looks like this:

code:add_patha("/Users/joe/code/jalib/work/beam").
code:add_patha("/Users/joe/Desktop/work/2007/jaerlang/socket_dist").
code:add_patha("/Users/joe/code/jalib/jalib-0.1/ebin").
code:add_patha("/Users/joe/code/jalib/jalib-0.1/src").
code:add_patha("/Users/joe/code/jaerlang_code").
...

%% Set paths to fix all rebar imports
Home = os:getenv("HOME").
Dir = Home ++ "/nobackup/erlang_imports/deps",
case file:list_dir(Dir) of
     {ok, L} ->
         lists:foreach(fun(I) ->
			       Path = Dir ++ "/" ++ I ++ "/ebin",
			       code:add_path(Path)
		       end, L);
    _ ->
	void
end.

The last part sets up the paths to find all rebar dependencies that I
have installed

code:add_path("....") adds ... to the code search path add_patha adds
to the beginning of the path

.erlang just contains a list of expressions which are evaluated when the system
starts.

You could read an evironment variable with os:getenv("VarName") and
set the paths
yourself.

ie in .erlang do this:


   L = string:tokens(os:getenv("MYENV", ":").
   [code:add_patha(I) || I<- L]

Then set your own envirnment variable

 export MYENV="/a/b/c:/d/e/f:...";

and "roll your own classpath" :-)

Cheers

/Joe











On Wed, Oct 24, 2012 at 6:12 PM, David Mercer <> wrote:
> On Wednesday, October 24, 2012, Yash Ganthe wrote:
>
>> Is it possible to setup an environment variable that lists all the
>> directories where ERL should look for .beam files? This is equivalent to
>> the CLASSPATH we set in Java.
>> The aim is to have erlang look for default directories rather than having
>> them passed using the -pa option to ERL.
>
> ERL_LIBS may be what you want.
>
> Cheers,
>
> DBM
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions



More information about the erlang-questions mailing list