2011-01-21 17 views
18

Mam projekt Java, który chciałbym przekonwertować do C#, a po sprawdzeniu tutaj i gdzie indziej dowiedziałem się o narzędzie, Sharpen.Konwersja Java na C# za pomocą narzędzia lub ręcznie?

Jednakże, aby go uruchomić i uruchomić (jestem nowicjuszem w Javie), strona powiązana powyżej opisuje przechwytywanie źródła i tworzenie go jako wtyczki do IDE Eclipse, czego wolałbym nie robić, ponieważ zwykle nie robisz Javy.

Czy ktoś wie, czy istnieje samodzielny EXE, który może po prostu wykorzystać Sharpen do podjęcia danego projektu Java i uruchomić go przez wyżymaczka, aby przekonwertować go do C#? A może Java i C# są na tyle podobne, że proste jest przeniesienie kodu do .NET ręcznie?

+0

Jak bit jest projektem, który chcesz przekonwertować? –

+0

@Marc: Jest to kilkadziesiąt klas Java, około 2 MB źródła. –

+0

http://stackoverflow.com/questions/31418484/porting-entire-java-projects-to-to-c-sharp –

Odpowiedz

27

Osobiście zrobię to ręcznie. Możesz zastanowić się, gdzie wybór architektury Java po prostu nie jest odpowiedni dla .NET, a kończy się na kodzie C# idiomatic zamiast kodu, który wygląda bardzo podobnie do C# z akcentem Java.

Oznacza to również, że jesteś bardziej prawdopodobne, aby zrozumieć kod na końcu :)

+3

+1 dla kodu "z akcentem Java". :) – Mehrdad

+1

OP brzmi nieprzyjemnie z kodowaniem w Javie, czy napotka na problemy ręczne? Coś, na co trzeba uważać? Prawdopodobnie znajdę się w tej samej łodzi w pewnym momencie, więc jestem zainteresowany. –

+3

@Justin: Prawdopodobnie nie - jeśli szedł w drugą stronę, to * tak, może on wpakować się w kłopoty. Ale przejście z Java do C# jest całkiem proste, a sam język może zostać przekonwertowany z bardzo niewielkimi modyfikacjami. (Wyjątkiem jest używanie wielu nowszych funkcji, takich jak używanie wielu anonimowych klas lub jak używanie generycznych, takich jak 'Class ', w takim przypadku tak, może być konieczne zrobienie czegoś więcej niż tylko zastąpienie tekstu. Ale ogólnie rzecz biorąc, jest to bardzo proste ... prawdopodobnie nawet łatwiejsze niż przejście z VB.NET do C#.) – Mehrdad

3

Nie ma konwersji jeden do jednego (lub nawet blisko), więc naprawdę należy zrobić to ręcznie. Jeśli jednak potrzebujesz przyzwoitego, zautomatyzowanego oprogramowania, albo jako punkt wyjścia, albo jako konwerter zgrubny, see this link.

3

Jak powiedział Jon Skeet, rób to ręcznie, możesz użyć tego Comparison chart, aby wykryć ważne różnice podczas konwersji z C# do Java.

2

Jeśli projekt jest tak duży, chciałbym użyć narzędzia, ale następnie przejrzeć je samodzielnie i zmienić głupie rzeczy w kodzie.

Powiązane problemy