Das mag richtig sein, jedoch liegt die Java-Anwendung ja als Byte- und nicht Binärcode vor, dass man dafür dann einen spezifischen Interpreter braucht ist klar, aber das Programm ist (da nicht Binär- sondern Bytecode) unabhängig von der Plattform (wenn keine HACKs drin sind) und muss bei anderen Plattformen nicht neu übersetzt werden.
Bist du dir da sicher? Der Typ Integer ist, soviel ich weiß, nirgendswo mit einer festen Größe definiert und ich könnte mir vorstellen, das die Kompilierung unter BigEndian und die Ausführung unter LittleEndian irgendwann in einen Fehler läuft. Desweiteren gibt es, zumindest unter Microsoft, im cout auch noch interne Variablen (die meist mit Unterstrich anfangen), bei denen nicht sicher gestellt ist, dass sie auf jedem System laufen (und die auch nicht im Standard definiert sind, soweit ich weiß).
"Nicht möglich" war vielleicht die falsche Formulierung, ich halte es aber auf jeden Fall für umständlicher. Das Laden einer Klasse aus einer Datei funktioniert in meinen Augen deswegen nicht, weil C keine Klassen kennt und man dann nicht weiß, wie man Methoden aufrufen bei so einer strengen OOP-Sprache aufrufen soll. Deswegen eher C++. Wie flashpixx schon sagte, noch etwas boost mit rein und dann ist es plattformunabhängig kompilierbar. (Da es aber eh nur auf UNIX laufen soll, ist das ja erstmal zweitrangig. )