binary generally means "not character" as in, there is no character
coding to take into account when reading the file. no line feeds, end
of line characters, no character sets, etc. I mean, all files are
'binary' information, as in 1's and 0's, but binary files the way you
are using it means essentially 'cannot be read in a text editor'.
executable, on the other hand, means different things to different
operating systems. on windows it means .exe (or .com) file extension
in a particular format that windows knows how to run and understand.
In some cases a .jar file can be executable in that windows sends it
to jar.exe and jar.exe knows how to run the java files inside, which
is probably what you are seeing. in no case (or exceedingly rare
cases) will you have a java program output an executable file.
executable in unix (or linux) means the 'executable' flag is set in
the directory. the shell reads the first line to see what if it is a
script file and if so what script engine to use (shell, perl, ???)
(not 100% clear on the details here).
apples and oranges here, like asking what's the difference between red
and hard?