Jar-Dateien sind meines Wissens nach Zip-Dateien mit anderer Endung und evtl. einer Manifest-Datei, die festlegt, welchen Code die Java-VM ausführen soll, wenn sie das Jar-File ausführen soll.

@ Seraphithan:
Das Java zu Bytecode und nicht zu Maschinencode (also .exe-Dateien) kompiliert, ist eigentlich einer der größten Vorteile der Sprache - dadurch läuft der Code ohne Rekompilieren auf jeder Plattform, somit ist Java eine sehr portable Sprache (auch, weil sonst kaum eine Sprache ein GUI-Toolkit in der Standardlibrary hat, wodurch man für fast jedes OS die Fenster mit verschiedenen Libraries erzeugen muss).