Java -> C++ converter



  • Gibt es einen Java -> C++ converter, wobei in Java nur die Console, keine GUI benutzt wird?



  • ihatejava schrieb:

    Gibt es einen Java -> C++ converter

    Ein paar. Lern Java und C++, dann bist du auch einer. 😛

    Mal im ernst: Du kennst sicherlich die geläufigen online-Übersetzer für deutsch<->englisch usw. Da kommt nur Murks bei raus. Viel besser kanns bei Java-C++-Konvertern kaum werden. Die beiden Sprachen haben an einigen Stellen einfach zu unterschiedliche Semantiken, um da verlässlich eine Übersetzung hinzubekommen. Bei Java ist (fast) alles eine Referenz, und der Garbage-Collector räumt den Speicher auf. Um das semantisch in C++ zu übersetzen müsste man In C++ entsprechend auch (fast) alles vom Heap anfordern und in Smartpointern verwalten, die auch an sowas wie einer Garbage-Collection hängen. C++ geht aber mit Objekten und Objektlebenszeiten völlig anders um, daher wäre das nicht nur schweirig sondern völliger Humbug, ein C++-Programm so zu schreiben.



  • es gibt ein paar online, brauchst nur googlen. die meisten davon sind aber ein bisschen aelter, koennen also nicht alle sprachmittel. ein open source ding was ich mal verwendet habe, hat die komplette toolchain gehabt, also das programm konvertiert und gleich durchgebaut um zu validieren dass es geht.
    das beste tool war jedoch ein kommerzielles, ich glaube $400 war das, davon gibt es eine test version die nur ein paar hundert zeilen auf einmal konvertiert, dafuer kann es mit allen dingen von java umgehen. das problem das sich manchmal stellte war, dass die java runtime libs nicht als source vorhanden sind und daher dann das bauen nicht klappte (jedenfalls war das bei mir so, aber ich wollte mir auch nur monkey arbeit sparen und die paar java arrays etc. durch eigene dummys ersetzen war 5min arbeit).

    es gibt keine eierlegendewollmilchsau an converter, aber ich konnte damit Rhino uebersetzen (java script engine in java). und gc scheint kein problem zu sein, ein konverter hatte alles in refcounted objekts umgewandelt, da eh alles von einer objekt basisklasse abgeleitet war und ein anderes hat einen c++ garbage collector verwendet, was ich erst beaengstigend fand, aber dann sah ich dass das auch von eine java script engine verwendet wurde, scheint irgendwie zu laufen.

    jedoch bleibt es meistens viel arbeit, falls es dir nicht gerade auf performance ankommt, kannst du viel besser mit jini arbeiten. du kannst von java deine c++ dll einbingen, oder auch in jvm in dein projekt linken und java files/funktionen aufrufen. (man kann sogar mit dem debugger dann an die jvm dran und hotswapping funktioniert mit ein wenig aufwand auch).


Anmelden zum Antworten