This is the output from ls -all command :-rwxr----- 1 subhrcho dba  3600 Nov 13 17:26 jdev-rw-r----- 1 subhrcho dba  1566 Nov 13 17:26 jdev-Darwin.conf-rw-r----- 1 subhrcho dba   347 Mar  6  2009 jdev-debug.boot-rw-r----- 1 subhrcho dba   821 Nov 13 17:26 jdev-logging-debug.conf-rw-r----- 1 subhrcho dba   584 Nov 13 17:26 jdev-logging.conf-rw-r----- 1 subhrcho dba  4717 Jul 31 16:09 jdev.boot-rw-r----- 1 subhrcho dba 12877 Nov 13 17:26 jdev.common-rw-r----- 1 subhrcho dba  5047 Dec  6 01:43 jdev.conf-rwxr-x--- 1 subhrcho dba 28160 Nov 13 16:28 jdev.exe-rwxr-x--- 1 subhrcho dba 28672 Nov 13 16:28 jdev64.exe-rwxr-x--- 1 subhrcho dba 28672 Nov 13 16:28 jdev64W.exe-rwxr-x--- 1 subhrcho dba 28160 Nov 13 16:28 jdevW.exeNow when I just run jdev it runs a different version of Oracle JDveloper than when I run it as ./jdev..Why is it so ?
What is the difference between running a executable just by name and by appending a dot /slash before it?
process;command
When you run an executable file ( or rather in unix/linux world - a file with executable rights/flag on) like so : $ ./jdevyou then mark with . that you want to run a file inside your working directory (directory that you are currently in) that is named jdev and has executable rights for the user that is launching it (you have to note that it can still be a link to other file, you can check that by typing ls -l jdev in the terminal)( see file permissions in linux/unix )When you run it as $ jdevthen most likely there is jdev installed somewhere on the system and you have it in $PATH ( e.g. /usr/bin/ or /bin/ or /usr/local/bin/ )As peterph stated : you can use which to to point the executable that is being launched with particular command, e.g.:$ which find/usr/bin/find