Can't find main.js /appium folder

Hello. So I recently switched from the appium GUI to the appium npm version.
I installed it with the npm install -g appium command, and I’m able to run the “appium &” command in the terminal to start the server and run my tests, so everything seems fine.

Until the point I try to start my server programatically I find a problem, I can’t find the folder and the main.js file I need in my appiumserver constructor to start the server. What am I doing wrong?
I found a similar thread Unable to launch appium programatically on mac due to missing file appium.js in ""
But can’t understand how they solved their problem.

Appreciate all help loads, regards.
Im using OSX

run command “which appium” on your terminal , It will show you the path it got installed

Please uninstall once and download again with npm only .
then enter node -v in the command prompt
u will get version number that u have installed if u r getting ryt then move forward nd give the path of ur apk in android setting and then run the node.
It will start successfully …


Thanks for your help.
I used this command and found my appium folder (it was in “/usr/local/lib/node_modules/appium)
I try start my server with
AppiumServer _appiumServer = new AppiumServer(new File(”/usr/local/lib/node_modules/npm/bin/npm-cli.js"),new File("/usr/local/lib/node_modules/appium/lib/main.js"),serverArguments);


But I now I get this message
aug 11, 2017 2:24:29 EM startServer INFO: Server is starting... aug 11, 2017 2:24:29 EM startServer INFO: Server has not started yet. Trying again in one second...

This continues until I get ServerTimeoutException, any ideas how I can fix this problem?
Regards rickesnick

you may try using AppiumServiceBuilder

AppiumServiceBuilder builder = new AppiumServiceBuilder()
.withAppiumJS(new File("/usr/local/lib/node_modules/appium/build/lib/main.js"))
.withArgument(GeneralServerFlag.APP, path of your app );
appiumDriverLocalService =;

1 Like

Thanks. Solved this issue by doing the following things
Using AppiumDriverLocalService

service = AppiumDriverLocalService
.buildService(new AppiumServiceBuilder()
.usingDriverExecutable(new File("/usr/local/bin/node"))
new File(


Hey, I`m new to Appium.
I have a question: on windows, where should I point this file to?
I see it is “/usr/local/lib/node_modules/appium/build/lib/main.js” for linux.
Maybe it is a stupid question, but if I want to start the service with AppiumServiceBuilder, should I install appium before that? I want to integrate Appium in a Java project and I’m not sure if I should provide installation support for the client or it is working directly with AppiumServiceBuilder.
Thank you!

install it first by cmd entring command = npm install -g appium

you will find main.js here :



Thank you, Chetan! I really appreciate it!

1 Like

I used this code and when I run it now, I’m getting this error, even though I have set the path for ANDROID_HOME

Caused by: org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Neither ANDROID_HOME nor ANDROID_SDK_ROOT environment variable was exported.

as i enter cmd appium

i am getting this error please give solutin

@seo try doing Run as > Run configuration > add env path one by one, both JAVA_HOME & ANDROID_HOME(you can get by echo command).

@adit try running appium -doctor and check for the errors.