2011-01-25 3 views
4

Possible en double:
is there an effective tool to convert c# to java?convertir C# en Java pur?

Je ne suis pas très expérimenté avec Java et ont beaucoup de C# que je voudrais traduire en syntaxe Java il deviendrait compilable.

Motif: Android et Google Cloud

Je sais que l'API/plates-formes ont des structures différentes, mais disons que nous ne ont besoin d'un compability 100%, mais juste pour obtenir "noyau functionalitet" traduit. L'interface graphique elle-même est une histoire à part, comme je l'ai appris. Mais au lieu de réécrire chaque SWITCH-CASE, de reconstruire chaque classe, etc., il serait bien de "mapper" les objets à Java, puis de faire une recompilation sur la plate-forme Android/Google.

Je suis sûr qu'il y aurait quelque chose qui ne peut pas être traduit comme une "chose C# seulement" - mais comme chaque langue est possible de générer .NET/MONO je pensais qu'il pourrait y avoir un Java -> .Net disponible aussi et donc aussi un décompilateur?

Y a-t-il des moyens simples pour surmonter cette traduction par Frameworks, SDK ou d'autres méthodes similaires qui prendront 80-95% de la tâche automatiquement?

+0

dang! pourquoi n'ai-je pas trouvé cela en cherchant ... parce que je l'ai fait. – BerggreenDK

+0

Trouvé celui-ci aussi suivant le fil mentionné: https://net2java.dev.java.net/ – BerggreenDK

Répondre

1

Regardez ici: JSC.

Mais à côté, il y a des concepts C# qui ne se traduisent pas facilement en java.

+0

https://net2java.dev.java.net/ semble également intéressant – BerggreenDK

0

.NET et Mono sont compatibles car les deux sont des machines virtuelles qui exécutent du code C#. Grasshopper prétend vous autoriser à exécuter des classes .NET sur la JVM, mais je ne l'ai pas utilisé. Il ne fonctionnera pas du tout pour Android car Android n'est pas la JVM, mais plutôt Dalvik. Les différences entre C# et Java sont plus que «structurelles» comme vous le dites, et la traduction d'une langue à l'autre est plus compliquée que je pense que vous comprenez.

+0

Je ne dis pas que les langues sont égales, mais veulent réutiliser autant que possible et se concentrer sur les «derniers morceaux». Nous pouvons donc faire un code d'ajustement de 20% en Java et le reste serait converti. Mais j'ai peut-être tort. – BerggreenDK

0

Je sais que Microsoft a un outil qui est censé aider à convertir Java en C#, mais étant donné qu'un grand nombre d'applications Java référencent des bibliothèques en dehors du système principal (Apache étant l'exemple le plus visible). tâche. C# contient également des types de données qui ne sont pas du tout pris en charge dans Java, tels que les types non signés et les objets alloués par pile. Ecrire des traductions de CLR vers le bytecode Java serait en effet difficile. Et si vous utilisez des fonctions lambda dans votre code, embrasser cette idée au revoir.

Ensuite, il y a le fait que toutes les fonctionnalités de Java ne sont pas disponibles pour la JVM Davlik.

Je ne suis pas un fan de Microsoft, mais voici une comparaison des deux langues qui vous donnera une idée des raisons pour lesquelles je doute que cet outil existe.

http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java

+0

oh mais certains des outils existe bien que je viens d'apprendre. Je ne parle pas d'une solution à 100%, mais juste quelque chose qui enlèvera la plupart des trucs boiteux-refaire-mon-travail. Par exemple. code de backend pour la logique métier ou classe/structures serait agréable d'obtenir automatiquement. Les choses de l'API pour un certain serveur web n'est pas ce que nous cherchons à traduire car les différentes plateformes ont des possibilités différentes. Mais si vous encapsulez ces appels dans des classes commerciales plus générales, il vous suffit de vous concentrer sur ceux-ci. Plate-forme. – BerggreenDK

+0

Bonne chance dans votre recherche, ami. Avez-vous envisagé de mettre en œuvre cette logique en tant que services Web en C#, puis en appelant simplement ce dont vous avez besoin à partir des applications client? Je n'ai pas vos coordonnées, mais cela semble aller plus vite. – avgvstvs