This commit may cause breaking change: changing working directory to the directory where the executable locates in.