문제

대부분 GUI 인 Java 프로그램이 있으며 C ++ 명령 줄 도구에서 XML 파일에 기록 된 데이터를 보여줍니다. 이제 데이터를 새로 고치기 위해 Java 프로그램에 버튼을 추가하고 싶습니다. 이것은 내 프로그램이 C ++ 기능을 호출해야 함을 의미합니다.

시스템 통화를 통해 Java에서 프로그램을 호출하는 가장 좋은 방법은 무엇입니까? C ++ 프로그램은 Mac OS 및 Windows 용으로 편집되며 항상 Java 프로그램과 동일한 디렉토리에 있어야합니다.

실행 파일을 생성하고 싶습니다. C 프로그램을 JAR 안에 저장하고 내 프로그램에서 호출 할 수 있습니까?

도움이 되었습니까?

해결책

더 나은 의사 소통 방법이 없다고 가정하면 (비누, 얼음, 소켓 등) Runtime.exec(). JNI는 직접 인터페이스하는 데 사용될 수 있지만 권장하지는 않습니다. 아니요 항아리에 실행 파일을 넣을 수 없습니다. 글쎄, 당신은 할 수 있지만, 쉘은 그것을 실행하는 방법을 모르기 때문에 실행할 수 없습니다.

다른 팁

코드에 액세스 할 수 있고 외부 프로그램에 대한 '대화식'경험을 원한다면 (예 : 전화, 결과를 얻고, 추가 전화를 받음) JNI를 조사하여 포함하여 Java 응용 프로그램에서 C 또는 C ++ 코드를 호출 할 수 있습니다. & JNI 주스를 C 또는 C ++ 앱으로 연결합니다.

보다:

http://en.wikipedia.org/wiki/java_native_interface

http://www.acm.org/crossroads/xrds4-2/jni.html

"시작 앱을 시작하고 결과를 얻는"솔루션이 필요한 경우 런타임 ()를 확인하여 외부 프로그램을 시작하고 출력을 캡처 할 수 있습니다.

보다:http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=1

http://www.rgagnon.com/javadetails/java-0014.html

당신은 또한보고 싶을 수도 있습니다 Java Native Access API (JNA).

마지막 질문에 답하기 위해 항아리 안에서 실행 파일을 실행할 수 없습니다.

그러나 당신은 ~할 수 있다 항아리 안에 보관하고 실행하기 전에 임시 디렉토리/파일로 추출하십시오 (처음으로 존재하는지 확인하고 필요한 경우 추출하십시오). 이것은 배포 할 항아리 만 가지고 있다는 점에서 배포를 다소 단순화하고 Jarred Java 코드와 일치하는 실행 파일을 실행하는지 확인합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top