2009-04-23 3 views
2

두 가지 옵션이 있습니다. JNI를 사용하거나 Runtime.exec을 사용하여 C++ 라이브러리를 실행할 수 있습니다.JNI와 Runtime.exec()

C++ 프로그램은 CPU를 많이 사용하며 오래 실행됩니다. 즉, 일부 호출은 반환하는 데 최대 2 시간이 걸릴 수 있습니다.

각 장단점은 무엇입니까? 어떤 방법을 사용해야합니까?

답변

5

C++ 라이브러리와 상호 작용해야하는 경우 JNI로 이동하십시오.

방금 ​​호출하려는 독립 실행 형 프로그램 인 경우 Runtime.exec()은 훨씬 간단합니다.

+0

안녕하세요. Michael, 더 많은 정보를 제공해주세요. 사용 된 속도와 기억에 대한 효과에 관해서. 또한 응용 프로그램 안정성에 미치는 영향은 무엇입니까? – saurabheights

2

JNA을 세 번째 옵션으로 들여다 보았습니까? JNA 사이트에서

:

JNA가 자바 코드에는 JNI 또는 네이티브 코드가 필요 없지만 아무것도 작성하지 않고 자바 프로그램 ( Windows에서 DLL을) 기본 공유 라이브러리에 쉽게 액세스 할 수 를 제공

. 이 기능은 이며 Windows 'Platform/Invoke 및 Python의 ctypes와 유사합니다. 코드 생성없이 런타임에 동적 인 액세스는 입니다.

소개를 위해 getting started 가이드를 참조하십시오.

+0

감사합니다. JNA에 대해 들어 보지 못했습니다. +1 – dogbane

+0

링크가 깨졌습니다. – kongo09

+0

@ kongo09 링크를 업데이트했습니다. –

0

JNI를 사용하면 32 비트에서 64 비트로 이동할 수있는 기능이 제한 될 수 있습니다. 또한 응용 프로그램 메모리 설정을 조정해야 할 수도 있습니다.

C++ 물건이 얼마나 잘 쓰여 있는지 알지 못한다면 앱이 불안정해질 수 있습니다. C++ 비트가 몇 시간 걸린다는 점에서 운이 좋았습니다. 그래서 그냥 외부에서 호출하십시오.

관련 문제