NedStarkOfWinterfell
NedStarkOfWinterfell

Reputation: 5203

Eclipse Erlide how to choose default current directory

I have installed Erlide in Eclipse, and trying to create an application. The Erlang project is named demo. It contains three folders - ebin, include and src. The demo.erl file is in src, for simply printing Hello World.

To run it in Eclipse shell, I choose Run from the top menu, and click Run as Erlang Application. Then a console opens in the sidebar. There I type c(demo) and press CTRL-Enter. Then I get an error message like demo.erl:none: no such file or directory.

Then I do pwd(), and it shows C:/Users/myName/Desktop/eclipse-jee-juno-SR1-win32-x86_64/eclipse even though the Erlang project is in workspace C:/Users/myName/Desktop/workspace/Erlang. Is there any way make Erlide run all Erlang applications from their directory directly?

Upvotes: 1

Views: 820

Answers (2)

bittersweet
bittersweet

Reputation: 21

If you have set Project -> Build Automatically in Eclipse to true, you don't need to type c(demo). explicitly to compile the demo module, it's done automatically when you save your file. But if you have not set it, you'll get exception error: undefined function if you try to use some of the functions in the module for example.

To make the c(demo) command work properly and find your .erl files, there are several ways to set the current working directory:

  1. Use Run -> Run Configuration -> Erlang Application -> Runtimes -> Working directory -> enter the full path to the /src folder of your project (without quotes). Then hit Apply and restart Eclipse (File -> Restart). If you try to Run the project without first restarting the IDE, your changes will not take effect i.e. the pwd(). command will still be returning the old working directory path.

  2. You can set the working directory in the erlide console with the command c:cd(the/full/path/to/your/src/folder)., before the call to c(demo). The path should be put in quotes.

  3. You can also set the working directory in the .erlang file by typing there the same command c:cd(the/full/path/to/your/src/folder). (the path again should be put in quotes). The file must be placed in you user directory, for Windows this would be C:/Documents and Settings/YourUsername. It's the same directory were also .erlang.cookie and erlide-debug.txt are placed. Windows Explorer will not allow you to create a file named .erlang, so you have to use the command copy NUL .erlang in Command Prompt (cmd.exe) for this. Then you can edit it with any txt redactor. Don't forget to restart Eclipse again after it.

Also note the following:

  1. You can use only / and not \ in the path (even in Windows).
  2. If you have entered a wrong path (with \ or to a non existing directory), it will be ignored and the working directory will not be changed at all.
  3. After changing the working directory to your/src folder, your beam files will start to appear there too instead of the /ebin folder.
  4. If you set a different path in both .erlang file and Run -> Run Configuration -> Erlang Application -> Runtimes -> Working directory, pwd(). will return the path in .erlang file.

Upvotes: 2

Vlad Dumitrescu
Vlad Dumitrescu

Reputation: 941

You don't need to run c(demo). The beam code is loaded and reloaded automatically, whenever the source is changed and saved.

If you still need to set a working directory, go to run->run configuration and you can edit the configuration.

/Vlad

Upvotes: 1

Related Questions