Not able to Instantiate the android driver, If the Appium server is started from the code

Steps I am following , to start the server is :
Created a bat file with the below command :
“C:/Program Files (x86)/Appium/node.exe” “C:/Program Files (x86)/Appium/node_modules/appium/bin/Appium.js” --address 127.0.0.1 --port 4723 --platform-name Android --platform-version 18 --automation-name Appium --no-reset --local-timezone --log E:\Android\appium.log""

Code Written to start the server :

public class Testing {
    AppiumDriver driver;

    @BeforeTest

    public void AppiumServerStart() throws MalformedURLException, InterruptedException {

        String s = null;

        String Filepath = "C:\\appiumserver.bat";

        // String Command = \""C:/Program Files (x86)/Appium/node.exe"
        // "C:/Program Files (x86)/Appium/node_modules/appium/bin/Appium.js"
        // --address 127.0.0.1 --port 4723 --platform-name Android
        // --platform-version 18 --automation-name Appium --no-reset
        // --local-timezone"\"

        System.out.println(Filepath);

        try {
            Process p = Runtime.getRuntime().exec(Filepath);
            

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        System.out.println(Filepath);
        System.out.println("Server Started");

        Thread.sleep(6000);

}

Code to Add Desire Capabilities and create android driver instance :

public class DemoCalc extends Testing {

    AppiumDriver driver;

    @Test

    public void Setup() throws MalformedURLException, InterruptedException {

        File file = new File(System.getProperty("user.dir"));
        
        DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability(MobileCapabilityType.VERSION, "4.4.4");
        cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
        cap.setCapability(MobileCapabilityType.DEVICE_NAME, "169.254.140.101:5555");
        cap.setCapability(MobileCapabilityType.APP_PACKAGE, "com.android.calculator2");
        cap.setCapability(MobileCapabilityType.APP_ACTIVITY, "com.android.calculator2.Calculator");
        driver = new AndroidDriver(new URL("http://localhost:4723/wd/hub"), cap);

However , the below exception is thrown on Android driver instance :

org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '2.46.0', revision: '87c69e2', time: '2015-06-04 16:17:10'

If I manually , start the server by clicking on appium.exe ,then issue does not occur. But when the server is started from java code issue appears.

After running the bat file to start the appium server, i see the node process in task manager , which shows the appium server has been connected.

Please help