2013-06-04 3 views
0

내가 수 .. 가능 webOrb를 사용하여통화 자바 함수

그것이 가능할 수 WCF 또는 C# .NET에서 작성된 클래스 애플리케이션을 사용하여 자바로 작성된 함수를 호출 할 수있다 자바에 대한 충분한 정보를 .Net 원격으로 찾으십시오.

+0

[This (http://stackoverflow.com/questions/2591935/call-any-java-method-from-c-sharp)가 도움이 될 수 있습니다. – fge

답변

2

C#과 Java 사이에서 통신하려면 몇 가지 옵션이 있습니다.

가장 깨끗한 서비스를 만드십시오.

이것은 사용자가 C# 구성 요소와 Java 구성 요소의 소스 코드에 액세스 할 수 있다고 가정합니다. Java 내에서 메서드를 호출하려는 경우 C# 클라이언트에서 Java 서비스로 연결할 수있는 서비스를 작성한 다음 서비스에서 원하는 기능을 실행하고 C# 클라이언트에 값을 반환합니다. . 이를 수행하는 쉬운 방법은 RESTful service을 작성하거나 Thrift을 사용하는 것입니다. 이 솔루션과 비슷한 솔루션을 선택하는 것이 좋습니다.

가장 복잡한 : 코바

Corba 다른 컴퓨터 언어 사이에 통신을 정의하는 표준입니다. 대부분의 성숙한 언어는 그것을 지원하지만 조금 이상하고 그 사용이 서비스 구축에 찬성하여 거부되었습니다. 이것은 또한 두 소스 코드에 대한 액세스를 가정합니다. 자바와 C#에서 Corba를 사용하는 방법에 대한 정보를 독자적으로 찾아야합니다. 나는 이것을 에게 조언 할 것이다.

더러운하지만 빠른 : 프로세스로 실행하고 분석 출력

난 정말 당신이 정말로 선택의 여지가없는 경우를 제외하고 당신이이 방법을 수행하지 않는 것이 좋습니다. 이렇게하면 C#에서 Java 프로그램을 실행해야합니다. 이것은 다른 옵션이없는 경우에만 좋은 선택입니다. 실행 파일 만 있으면되기 때문입니다. 이 경우 Process 클래스를 사용하여 외부 프로그램을 실행하고 매개 변수를 전송 한 다음 출력을 읽을 수 있습니다. 여기에 언급 된 예제를 참조하십시오. How do I start a process from C#?

모든 예외적 인 원인을 생각하고 해당 사례에 대한 출력을 결정한 다음 해당 출력을 구문 분석하는 방법을 결정해야하기 때문에 많은 단점이 있습니다. 프로그램의 복잡성이 어느 정도인지 알기도 전에 코드를 유지하기가 어려울 것입니다.

결론 : 서비스 구축

아마도 가장 좋은 방법 일 것입니다. C# 클라이언트가 호출 할 수있는 API를 제공하는 서비스를 작성하십시오.

관련 문제