web-dev-qa-db-fra.com

Existe-t-il un outil efficace pour convertir le code C # en Java?)?

Existe-t-il un outil efficace pour convertir le code C # en Java?)?

84
joshjdevl

Je n'ai jamais rencontré d'outil de conversion C # -> Java. La syntaxe serait assez simple, mais les cadres sont très différents. Même s'il existait un outil, je le déconseillerais vivement. J'ai travaillé sur plusieurs projets de "migration", et je ne saurais trop insister sur le fait que, même si la conversion semble être un bon choix, les projets de conversion toujours toujours = se tournent vers des gouffres. Ce n'est pas un raccourci. Vous obtenez un code illisible qui ne tire pas parti de la langue cible. Par expérience personnelle, supposons qu’une réécriture est l’option la moins chère.

44
Michael Meadows

Nous avons une application à gérer en C # et en Java. Puisque nous maintenons activement ce produit, un port ponctuel n'était pas une option. Nous avons étudié Net2Java et les outils Mainsoft, mais nous n’avons pas répondu à nos exigences (Net2Java pour son manque de robustesse et Mainsoft pour son coût et l’absence de conversion du code source). Nous avons créé notre propre outil appelé CS2J qui s'exécute dans le cadre de notre script de génération nocturne et effectue un portage très efficace de notre code C # vers Java. À l’heure actuelle, c’est justement suffisant de traduire notre application, mais il reste encore beaucoup à faire avant d’être considéré comme un outil complet. Nous avons concédé cette technologie à quelques parties ayant des besoins similaires et nous envisageons de la publier publiquement, mais notre activité principale nous tient trop occupés ces jours-ci.

28
Mike Rustici

Ce blog post suggère des résultats utiles provenant de tangible .

8
Nick Westgate

Il existe un outil de Microsoft pour convertir Java en C #. Dans le sens contraire, jetez un coup d'œil ici et ici . Si cela ne fonctionne pas, la conversion manuelle du code source ne devrait pas être trop longue, car C # et Java Sont très similaires,

6
Roger Ween

Bien que ce soit une vieille question, jetez un coup d’œil à xmlVM http://www.xmlvm.org/clr2jvm , je ne suis pas sûr qu’elle soit suffisamment mature, bien qu’elle existe déjà depuis plusieurs années maintenant. Je crois que XMLvm a été conçu principalement pour traduire les applications Android Java sur l'iPhone. Cependant, son infrastructure basée sur la traduction de code XML est suffisamment souple pour permettre d'autres combinaisons (voir les schémas sur le site ).

Comme raison de faire cette conversion, il est peut-être nécessaire de "détourner" une partie du code osseux très abondant et de l’utiliser dans son propre projet [Java].

À votre santé

Riches

5
Big Rich

Essayez de regarder Net2Java Il me semble que la meilleure option pour la conversion automatique (ou au moins semi-automatique) de C # à Java

4
Pedro C

Ils ne convertissent pas directement, mais cela permet une interopérabilité entre .NET et J2EE.

http://www.mainsoft.com/products/index.aspx

3
scubabbl

C # a un peu plus de fonctionnalités que Java. Prenons les délégués, par exemple: de nombreuses applications C # très simples utilisent des délégués, alors que Java personnes calculent que le modèle d'observateur était suffisant. Ainsi, pour qu'un outil convertisse une application C # qui utilise des délégués, il lui faudrait convertir la structure d'utilisation des délégués en une implémentation du modèle d'observateur. Un autre problème est le fait que les méthodes C # ne sont pas virtuelles par défaut, contrairement à Java. De plus, Java ne dispose pas d'un moyen de rendre les méthodes non virtuelles. Cela crée un autre problème: une application en C # peut exploiter le comportement de méthode non virtuelle via le polymorphisme d’une manière qui ne se traduit pas directement en Java. Si vous regardez autour de vous, vous constaterez probablement qu'il existe de nombreux outils pour convertir Java en C #, car il s'agit d'un langage plus simple (veuillez ne pas me flamber, je n'ai pas dit pire, j'ai dit plus simple); Cependant, vous trouverez très peu d'outils décents permettant de convertir C # en Java.

Je recommanderais de changer votre approche de la conversion de Java en C #, car cela créera moins de maux de tête à long terme. Db4Objects a récemment publié son outil interne qu’il utilise pour convertir Db4o en C # au public. Il s’appelle Sharpen. Si vous vous enregistrez sur leur site, vous pouvez afficher ce lien avec les instructions d'utilisation de Sharpen: http://developer.db4o.com/Resources/view.aspx/Reference/Sharpen/How_To_Setup_Sharpen

(Je suis enregistré avec eux depuis un moment et ils sont bons pour ne pas spammer)

3
Lorentz

Ces les gars semblent avoir une solution à cela, mais je n'ai pas encore essayé. Ils ont également une version de démonstration du convertisseur.

3
Guven Demir

Je ne sais pas trop ce que vous essayez de faire en souhaitant convertir C # en Java, mais si vous avez besoin de l’interopérabilité .net, vous voudrez peut-être vérifier Mono

1
karlipoppins

La syntaxe est presque identique, mais ils reposent sur des frameworks différents, le seul moyen de convertir est donc de faire appel à une personne connaissant les deux langues et de convertir le code :) la réponse à votre question est non, il n'y a pas d'outil "efficace" pour convertir c # à Java

1
Hannoun Yassir

C'est à l'improviste, mais n'est-ce pas ce que Grasshopper était pour?

1
Ian Patrick Hughes

Vous pourriez éventuellement utiliser jni4net - pont opensource à la place? Ou liste de autres options Je sais.

1
Pavel Savara