Frage

Ich habe einen mittleren (25k Zeilen Code, 25k Linien Tests) bekam Code-Basis in Java und mag Port, um es auf einem CLR sowie die JVM ausgeführt werden.

Nur die Hauptklasse, und ein paar Testprogramme zusammen mit dem Dateisystem oder OS in irgendeiner Weise beschäftigen. Der Rest des Codes verwendet, um die generischen Auflistungen APIs extensiv, java.util.regex, java.net (aber nicht die URL oder URLConnection), java.io für charset Kodierung / Dekodierung, java.text für Unicode-Normalisierung und org.w3c. dom für XML-Manipulation.

Ist es möglich, die meisten der Code-Basis sowohl unter J # und Java kompilieren zu bekommen, und dann Port den Rest?

Wenn ja, welche Art von Gefahren bin ich wahrscheinlich in laufen?

Vielen Dank im Voraus, mike

War es hilfreich?

Lösung

Schauen Sie sich IKVM: http://www.ikvm.net/

Es ermöglicht Ihnen, (speziell kompiliert) Java-Code innerhalb des .Net CLR zu laufen.

Einige meiner colleages es mit einem Java-Codebasis von 1 Million + Zeilen Code erfolgreich verwendet haben.

Andere Tipps

Pitfalls:

  • so etwas schreckt das Heck aus mir. Die Zahl der wirklich subtilen Fehler passieren warten ist riesig.
  • J # unterstützt nur Java 1.1.4 AFAIK -. Auf Wiedersehen Generika usw.
  • Visual Studio 2008 nicht J # unterstützt - im Grunde ist es ein totes Projekt
  • .

Ich vermute, dass Sie tatsächlich finden würden es einfacher, es in C # neu zu schreiben (einschließlich C # lernen, wenn Sie es nicht tun, schon wissen - es ist eine Freude). Sie werden mit einer mehr idiomatisch .NET-Bibliothek wie auf diese Weise auch am Ende, wenn es das ist relevant: wenn Sie jemals ein anderer .NET-Entwickler wollen Ihren Code verbrauchen, sind sie wahrscheinlich viel glücklicher mit einem „reinen“ zu sein. NET-Projekt als ein mit J #.

Der Nachteil ist, dass die Zukunft, würden alle Änderungen auch an zwei Stellen vorgenommen werden müssen. Es gibt sicherlich gibt Schmerzen, aber ich glaube wirklich, Sie eine bessere Erfahrung haben werden „normal“ .NET.

Wie Jon wies darauf hin:. J # ist ziemlich tot

Starten Sie Ihren (normal) Java-Code auf .NET IKVM könnte eine Alternative sein ‚, though.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top