2008-09-17 5 views
78

C# 코드를 Java 코드로 변환하는 효과적인 도구가 있습니까?C# 코드를 Java 코드로 변환하는 효과적인 도구가 있습니까?

+0

@Rachel : 나는 자바에 새로운 해요하지만 꽤 잘 C 번호를 알고, 나는 누구의 기능 나는 새로운 C# 프로젝트로 변환하고 싶습니다 죽은 것으로 보인다 SourceForce에 오픈 소스 자바 프로젝트, 우연히. 나는 그런 도구를 가지고 무거운 물건을 들어 올리고 최소한 기본 방법과 구조를 변환하고 싶습니다. 그 후에 결과를보고 두뇌를 사용하여 남아있는 것이 무엇이든지간에 사용할 수있는 것으로 번역 할 수 있습니다. .NET 편안한 영역. –

+5

@Rachel : 연금술. 사람들은 항상 가치없는 것을 금으로 바꾸려고 노력했습니다. ; P – Bobby

+1

예 대부분의 프로젝트 버려진 매우 귀중한 될 수 있습니다. 마지막 포기한 프로젝트 그냥 PSC 코드 숨어있는 발견 7200 $ usd 완전히 자동화 된 내가 그것을 좋아하는 방법. 다시 쓸모 없게 될 때까지 : S – SSpoke

답변

2

직접 변환하지는 않지만 .NET과 J2EE 간의 상호 운용성을 허용합니다.

+2

링크가 오래되어 SharePoint 제품을 가리킬뿐입니다. – Trisped

5

는 C 번호에 자바를 변환하는 Microsoft의 도구가있다. 반대 방향은 herehere입니다. 이 방법이 효과가 없다면 C#과 java가 매우 유사하기 때문에 소스를 수동으로 변환하는 데 너무 오래 걸리지 않습니다.

+1

내가 마이크로 소프트의 JLCA를 사용하고 정말 한 일 : http://weblogs.asp.net/jgalloway/archive/2007/01/24/identicons-ported-from-java-servlet-to-httphandler.aspx –

+5

"C# 및 자바는 매우 유사합니다 "하하하, 좋은 농담, C에서 그들과 함께 작업 한 후에 자바에서 제네릭을 시도해보십시오. –

+0

C#의 초기 버전은 자바와 거의 동일했지만 지금은 멀어졌습니다. –

42

C# -> Java 변환 도구가 없습니다. 구문은 쉽지만 프레임 워크는 크게 다릅니다. 도구가 있더라도 반대하는 것이 좋습니다. 나는 여러 가지 "이주"프로젝트를 수행했으며 전환이 좋은 선택 인 것처럼 보이지만 전환 프로젝트 은 항상 항상이 돈 구덩이로 들어서도록 강조 할 수는 없습니다. 바로 가기가 아니며, 결국에는 읽을 수없는 코드가 대상 언어를 이용하지 않습니다. 개인적인 경험으로 말하면, 재 작성이 더 저렴한 옵션이라고 가정합니다.

+29

즉, 가장 효과적인 "도구"는 프로그래머입니다. 당신이 어떤 제네릭 새에 의존 (오른쪽 excatly 멀티 캐스팅의 의미를 얻을 수 행할 수 있지만, 하드) 람다, LINQ, 이벤트, 확장 방법, 어떤 반성을 사용하지 않는 :-) – marcospereira

+29

너무 오래 "구문은 충분히 쉬운 것입니다"() 또는 디폴트 (T) (타입 소거는 나쁜 것입니다), 반복자 블록, 부호없는 변수, 연산자 과부하 ... 나는 계속 할 수 있습니다. 자바 애플 리케이션, C로 번역 #, 다시 다시 내가 쉽게 생각할 수있을 것 같아요.그러나 그것은 매우 제한적인 하위 집합입니다. C# – ShuggyCoUk

+0

다시 작성하면 거의 더 저렴 해지고 더 나은 제품을 만들고 더 잘 이해할 수 있기 때문에 여전히 더하기 하나를 얻게됩니다. – ShuggyCoUk

2

C#에는 Java보다 몇 가지 기능이 더 있습니다. 예를 들면 다음과 같습니다. 많은 매우 간단한 C# 응용 프로그램이 대리자를 사용하는 반면 Java 사용자는 관찰자 패턴이 충분하다는 것을 나타냅니다. 따라서 위임자를 사용하는 C# 응용 프로그램을 도구에서 변환하려면 위임자를 사용하는 구조에서 관찰자 패턴 구현으로 구조를 변환해야합니다. 또 다른 문제점은 Java 메소드가있는 동안 C# 메소드가 기본적으로 가상이 아니라는 사실입니다. 또한 Java에는 메서드를 가상이 아닌 방법으로 만들 수있는 방법이 없습니다. 이것은 또 다른 문제를 만듭니다. C#의 응용 프로그램은 Java로 직접 변환되지 않는 다형성을 통해 가상 메서드가 아닌 비헤이비어를 활용할 수 있습니다. 주위를 둘러 보면 Java를 C#으로 변환하는 도구가 많이 있다는 것을 알게 될 것입니다. 단순한 언어이므로 (더 이상 말하지 않았다고 말하지 마십시오) 간단합니다. 그러나 C#을 Java로 변환하는 적절한 도구가 있다면 거의 찾을 수 없습니다.

장기적으로 두통이 줄어들어 Java에서 C#으로 변환하는 방법을 변경하는 것이 좋습니다. Db4Objects는 최근 Db4o를 C#으로 변환하는 데 사용하는 내부 도구를 공개했습니다. 그것은 선명하게 불린다. http://developer.db4o.com/Resources/view.aspx/Reference/Sharpen/How_To_Setup_Sharpen

(I 잠시 동안 그들과 함께 등록 된 한 그들이 스팸하지에 대한 좋은거야)

+0

linq이 내 마음에 온다. linq를 자바로 사용하는 코드를 어떻게 변환합니까? – marcospereira

+1

"Java는 메소드를 가상이 아닌 방법으로 만들 수있는 방법이 없습니다." - Java는 '최종'키워드를 사용합니다. 이는 메소드 앞에 배치 될 때 날카로운 '씰'과 동등합니다. –

0

I : 당신은 자신의 사이트에 등록하는 경우가 선명를 사용하는 방법에 대한 지침이 링크를 볼 수 있습니다 C#을 자바로 변환하려고하지만, 필요한 경우 .net 상호 운용성이 필요하다면, 체크 아웃하고 싶을 수도 있습니다. Mono

1

이것은 커프에서 벗어나지 만, 그렇지 않습니다. 그게 Grasshopper 그게 뭔데?

+0

이것은 CIL (MSIL)을 java 바이트 코드로 변환합니다. OP는 무엇을 요구했는지 직접적으로 유용하지는 않습니다. 원 샷 변환 이외의 다른 것에 대해서 실제로 * 유용 할 가능성이 더 높다고 말할 것입니다. – ShuggyCoUk

+0

Grasshopper가 아직 사용 가능하지 않은 것으로 보입니다. [이 기사] (http://www.theserverside.com/news/thread.tss?thread_id=50450)에 대한 의견을 읽으면 Grasshopper가 널리 사용되지 않았거나 기능이 풍부하지 않은 것처럼 보입니다. 또한 [Mainsoft가 초점을 변경했습니다] (http://en.wikipedia.org/wiki/Mainsoft) (더 이상 찾을 수없는 이유 일 수 있음)가 나타납니다. – Trisped

2

시도 그것은 나에게 자바

26

에 C 번호의 자동 (또는 반자동 이상) 변환을위한 최선의 선택 우리는 모두 C# 및 Java로 유지하기 위해 필요한 응용 프로그램이 보인다 Net2Java 볼 수 있습니다. 우리가 적극적으로이 제품을 유지 관리하기 때문에 일회성 포트는 옵션이 아닙니다. 우리는 Net2Java와 Mainsoft 도구를 조사했지만, 우리의 요구 사항 (Net2Java는 견고성이 부족하고 Mainsoft는 비용 및 소스 코드 변환 부족)을 충족시키지 못했습니다. 야간 빌드 스크립트의 일부로 실행되는 CS2J이라는 자체 도구를 만들고 Java에 C# 코드의 매우 효과적인 포트를 만듭니다.지금은 애플리케이션을 번역 할만큼 정확하지만 포괄적 인 툴로 간주되기까지는 갈 길이 멀다. 우리는 유사한 요구 사항을 가진 몇몇 당사자들에게이 기술을 라이센스했으며 공개적으로 공개한다는 아이디어를 가지고 놀고 있습니다. 그러나 핵심 비즈니스는 요즘 우리를 너무 바쁘게 만듭니다.

+4

아,하지만 오픈 소스로 공개했다면, 그것을 사용하는 사람들 (필요에 따라 그 중 일부는) 자신의 필요에 맞게 확장 할 것입니다. 면허로 돈을 거의 벌지 않으면이 일을 할 수도 있습니다. – gbjbaanb

+3

@gbjbaanb, 성공적인 오픈 소스 프로젝트는 커뮤니티를 육성하고 구축해야합니다. 신경 쓰지 않고 소스 코드를 덤핑하면 대부분의 오픈 소스 개발자들이 다른 옵션을 먼저 고려하게됩니다. –

+3

업데이트 만하면 - CS2J가 오픈 소스로 출시되었습니다. (적어도 개인적으로, 적어도 아직은 모르겠다.) – RenniePet

0

구문은 거의 동일하지만 서로 다른 프레임 워크에 의존하므로 변환 할 수있는 유일한 방법은 두 언어를 모두 알고 코드를 변환하는 사람을 얻는 것입니다. 질문에 대한 대답은 "효과적인" 도구는 자바

7

postTangible에서 유용한 결과를 제안이 블로그에 C#을 변환합니다.

2

These 사람은 이것에 대한 해결책을 갖고있는 것 같다,하지만 난 아직 시도하지 않았습니다. 그들은 또한 변환기의 데모 버전을 가지고 있습니다.

0

아마도 대신 jni4net - opensource bridge를 사용할 수 있을까? 또는 other options 목록입니다.

+0

궁금한 분들을 위해 jni4net은 JVM과 CLR 사이의 다리 역할을합니다. 또한 CLR에서 실행되는 .Net 코드 (예 : VB 또는 C#)가 JVM에서 코드를 실행하고 JVM에서 실행되는 Java 코드가 CLR에서 코드를 실행하도록 허용합니다. 자세한 내용은 [2009/10/10, 2009/10/31 및 2009/11/03 블로그 게시물] (http://zamboch.blogspot.com/search/label/jni4net)을 참조하십시오. 그것이하는 것을 말하는 페이지 인 것처럼 보입니다. – Trisped

+0

http://jni4net.sourceforge.net/ 조금 더 좋다 –

4

xrmVM http://www.xmlvm.org/clr2jvm을 살펴보세요. 아직 성숙한 지 아직 확실하지 않지만 몇 년 전부터 있습니다. XMLvm은 안드로이드 자바 애플 리케이션을 주로 iPhone으로 번역 한 것으로 믿어 지지만 XML 코드 변환 기반 프레임 워크는 다른 조합을 수행 할 수있을 정도로 유연합니다 (사이트의 다이어그램 참조).

이 변환을 수행하는 이유는 highly abundant oss code의 일부를 '납치'하여 자신/자신의 [Java] 프로젝트에서 사용해야 할 수도 있습니다.

건배

리치

-2

왜 (http://haxe.org/) HAXE에를 작성하고 당신이 원하는 무엇이든로 변환하지?

+4

그는 이미 C#에서 코드를 가지고 있기 때문에, 나는 추정한다. –