2012-02-09 2 views
1

저는 C++로 제작 된 프로젝트로 작업하고 있습니다. 이 프로젝트에는 자바 코드에서 호출하고자하는 public 메소드가 들어있는 public 클래스가있다. 이것이 일어나게하는 가장 좋은 방법은 무엇입니까? 나는 C++ 코드를 바이트 코드로 컴파일하는 것을 원한다고 생각한다.JVM에서 C++ 코드를 어떻게 활용할 수 있습니까?

나는 이런 식으로 몇 가지 도구를 보았지만 그 중 일부는 매우 오랫동안 업데이트되지 않았고 다른 도구는 부적절한 것으로 보입니다. 이러한 도구 중 전문가 급 응용 프로그램에 사용할 수있을 정도로 성숙한 도구가 있습니까? 오픈 소스가 바람직하기는하지만, 필자는 상업적 도구를 똑같이 고려할 의향이있다.

+0

JNI 사용을 고려하지 않는 이유가 무엇입니까? – Jyro117

+0

사과 - JNI에 익숙하지 않음 – sangfroid

+0

본인은 실제로 본인을 직접 사용한 적이 없지만 다른 사람이 자세히 설명 할 수 있다고 확신합니다. 본질적으로 JVM 외부에서 원시 코드에 액세스하거나 Java 코드를 원시 코드로 호출 할 수 있습니다. 빠른 Google 검색을 사용하면 실제 이름은 Java Native Interface입니다. – Jyro117

답변

1

천천히 그리고 아주 사용하기 어려운 것으로 알려진 오래된 대기열 인 JNI이 항상 있습니다.

JNA은 개인적으로 사용한 적은 없지만 "좋은 물건을 들었습니다"라고 표시되어 귀하의 청구서에 맞을 것으로 보입니다.

C + + 코드를 서비스를 재구성하는 것이 좋습니다. TCP 또는 UNIX 소켓. 이렇게하면 이식성이 향상되고 대부분의 언어에서 연결할 수 있으며 Java와 관련되지 않습니다.

2

현재 패키지 이름은 javacpp입니다.

1

JNI (Java Native Interface)를 사용하여 Java에 브리징 C++을 연결하는 것은 실제로 매우 쉽습니다. 단점은 코드를 사용할 플랫폼에 대해 C++ 부분을 컴파일해야한다는 것입니다.

이 게시물 Can C++ call Java code?에서 C++로부터 Java를 호출하는 예제가 있지만 Java에서 C++을 호출하는 것은 매우 비슷합니다.