[beaglebone] Interesting sh behaviour


I am developing an application on Beaglebone and I faced an interesting problem.

When i execute : "sh /home/root/Desktop/BBTCP/out/vehicleDetect " in terminal it says
“/home/root/Desktop/BBTCP/out/vehicleDetect: /home/root/Desktop/BBTCP/out/vehicleDetect: cannot execute binary file”

But when i execute “cd /home/root/Desktop/BBTCP/” and “sh out/vehicleDetect” it starts working??

What is the reason and why I can’t run tha application with first configuration?


because it's not a shell script?