2009-07-10 3 views
4

나는 복잡하고 밀교적인 파일 형식을 읽을 수 있어야하는 C++ 프로그램을 작성 중이다. 이미 간단한 파일 형식으로 변환하는 기능이 포함 된 이러한 파일을 처리하기위한 Java 프로그램이 있습니다. 내 생각에, 내 프로그램은 복잡한 파일에서 정보를 읽어야 할 때마다 자바 메소드를 호출하여 더 간단한 파일 유형으로 변환 한 다음 내 프로그램에서 쉽게 읽을 수있는 임시 파일에 기록해야한다. 파일은 성능이 충분할만큼 작습니다. Qt에 프로그램을 작성하고 Windows Vista 컴퓨터에서 실행하고 있습니다.C++에서 Java 메소드를 호출하는 가장 쉬운 방법은 무엇입니까?

자바 네이티브 인터페이스를 사용해 보았습니다. 그러나 더 자세히 살펴보면 더 많은 것을보아야합니다. 이를 수행하는 더 좋은 방법이 있습니까? 아니면 JNI 접근 방식을 계속해야합니까?

답변

6

얼마나 자주해야합니까? 자주 그렇게하지 않으면 밖으로 껍질을 벗기고 그것을 할 수 있습니다. 그냥 명령 행을 생성해라. JNI는 작동하지만 설정을 시작하는 데는 약간의 어려움이 있습니다. 일단 그것을 설정하면 잘 작동합니다.

3

Java 알고리즘에 대한 실행 파일 병을 생성하지 않는 이유는 무엇입니까?

1

SWIG에 관심이 있으실 것입니다. "SWIG는 C 및 C++로 작성된 프로그램을 다양한 고급 프로그래밍 언어와 연결하는 소프트웨어 개발 도구입니다 .SWIG는 Perl, PHP, Python, Tcl 및 Ruby와 같은 일반적인 스크립팅 언어를 포함한 다양한 유형의 언어와 함께 사용됩니다.

+0

OP는 다른 방식으로 원했던 것처럼 보입니다. SWIG는 재미있어 보입니다. –

1

GCJ이 옵션 인 경우 Java 프로그램을 C++ (다시 말하면 g ++의 경우) 프로그램과 라이브러리로 링크 할 수있는 원시 코드와 직접 CNI의 mappins를 포함하는 헤더 파일로 컴파일 할 수 있습니다 모든 Java 항목을 C++로 - 네임 스페이스에 대한 패키지, 클래스에 대한 클래스, 멤버 함수에 대한 메서드 등이 포함됩니다.

2

GCJ을 사용하면 Java를 링크 할 라이브러리로 설정할 수 있습니다.

JNI만큼 고통 스러울 수도 있지만 최소한 JRE를로드하거나 의존하지 않을 것입니다.

관련 문제