내 목표는 동일한 SQLite 데이터베이스에서 읽은 두 개의 개별 응용 프로그램 (Java에서 하나, C++에서 둘 다 동일한 시스템에 있음)을 만드는 것입니다. C++ 구현은 이미 작동하며 해당 통신에 필요한 모든 메소드를 갖추고 있습니다. sqlite3.h 라이브러리를 사용합니다.Java와 C++ 사이의 IPC
Java 응용 프로그램에서 JDBC 또는 SQLite 랩퍼를 사용하는 것이 가장 합리적입니다. 문제는 내 임베디드 시스템 (POSIX)에 리소스가 매우 제한되어 있고 필요한 * .jar 파일을 포함 할 때 간단한 쿼리를 실행하는 데 너무 오래 걸리는 것입니다. Xerial JDBC, sqlite4java, sqljet 및 Javasqlite Wrapper/JDBC 드라이버를 Christian Werner에서 사용해 보았습니다. JavaVM은 모든 것을로드하고 실행하는 데 너무 오래 걸리고 성능은 중요한 문제입니다.
해결 방법으로, 시스템 명령을 사용하고 쿼리를 실행하고 대답을 얻기 위해 sqlite3 명령 셸을 실행하도록 Java 응용 프로그램을 관리했습니다. 더 세련되고 안전한 솔루션을 찾고 있습니다.
실제로 C++의 메소드를 사용하려면 Java 응용 프로그램이 필요합니다. 메서드가 구현되어 하나의 값만 반환하도록 문자열을 반환합니다. IPC를 많이 읽은 후에 나는 명명 된 파이프를 사용해야한다는 결론에 도달했습니다. 것은 내가 JNI를 사용해야 만 할 것이지만 초급 자바 레벨을 가지고 있으며 이번에 JNI는 너무 복잡합니다. 이 경우에 JNI는 과도한 행동입니까?
여기에 구현할 수있는 다른 해결책은 무엇입니까?
어쩌면 당신이 여기서 뭔가를 찾을 수 있습니다 : http://stackoverflow.com/q/165945/2617699 여기에 http : // 유래 .com/q/5900887/2617699 – JavaDM
JNI는 내가 선호하는 간단하고 직선적 인 방법입니다. 또한 파이프 대신 소켓 (UDP/TCP) 또는 공유 메모리를 사용할 수 있습니다. – deepmax