Du kannstdas Mit Java denke ich am einfachsten per Paralellport lösen können. Serielle Schnittstelle geht auch noch.
USB wird eben von der Hardware her etwas komplizierter. Wie das mit der Software ist, weis ich nicht.
Es gibt auf jeden Fall für alle 3 Ports APIs für Java um diese zu nutzen.
Alllerdings sind die alle durch JNI realisiert und so platformabhängig.