2011-02-14 6 views
0

나는 java에 익숙하며 서버처럼 계속 실행되는 Java 응용 프로그램을 개발하려고합니다.JNI를 사용한 Java 응용 프로그램

지속적으로 작동하는 UI가 적은 응용 프로그램을 개발할 수 있습니까? 이 응용 프로그램에는 JNI 지원도 있어야하므로 JNI를 사용하여 내 보낸 함수는 C++ 응용 프로그램에서 호출해야합니다.

누구나 시작할 포인터를 말해 줄 수 있습니까?

감사합니다. 감사합니다.

비셔 N

답변

0

예.

지속적으로 작동하는 UI가 적은 응용 프로그램을 개발할 수 있습니까?

항상 실행되는 스레드 또는 코드 메인 스레드를 생성하십시오.

또한이 응용 프로그램에는 JNI 지원이 있어야하므로 JNI를 사용하여 내 보낸 함수는 C++ 응용 프로그램에서 호출해야합니다.

예는, 예를 자바로 UI 적은 응용 프로그램을 개발할 수 있습니다 here

+0

왜 downvote ??? –

1

를 보라.

내가 응용 프로그램 서버가 여러 요청, 거래 등 보안, 라이프 사이클, 지속성, 처리 할 것으로 예상됩니다

대답은 다음 내가 구현하는 자바 EE 경로를 선택합니다 경우
당신의 요구 사항. EJB3.0을 사용하여 비즈니스 모델을 구현하고 Glassfish, JBoss 등 응용 프로그램 서버 중 하나에 배포합니다. Glassfish, JBoss 등. 위에서 설명한 모든 기능을 다시 구현하지 않고도 지원할 것입니다.
참고 :이 솔루션은 WebService, CORBA 또는 JMS를 사용하여 원격 메소드를 노출 할 수있는 유연성을 제공합니다.
대답이 인 경우 아니요 인 경우 일부 포트에서 수신 대기하고 일부 맞춤 프로토콜을 통해 통신하는 자체 독립형 서버 유형 응용 프로그램을 만들 수 있습니다.

지원 JNI - 일반 JavaBean 래퍼 또는 프록시를 작성해야합니다. 이 프록시는 JNI에 의해 사용됩니다.

0

사용자 인터페이스없이 Java 애플리케이션을 개발할 수 있습니다. 대부분의 사람들은 사용자 인터페이스가 인 을 개발하는 것이 더 쉽다는 것에 동의 할 것이라고 생각합니다.

JNI에 관해서, 내가 그 질문을 이해한다면, 당신은 그것을 거꾸로 가지고 있습니다; 예를 들어 C++을 사용하는 JNI를 사용하면 C++의 Java 코드가 아니라 Java에서 C++ 코드를 호출 할 수 있습니다.

+0

그러나 C/C++ 코드 –

+0

에서 Java로 다시 호출 할 수도 있습니다. 물론 JNI와는 아무런 관련이 없습니다. 이상한데, 이것은 이틀 만에 두 번째로 나는 (명백한) 오해를 경험했습니다. 나는 그 전에 그것을 본 적이 없다. – Dave

+0

JNI와 아무런 관련이 없다고 말하는 이유는 무엇입니까? JNI 체제에 의해 제공되는 메소드를 호출함으로써. CallVoidMethod 당신은 JNI를 사용하여 Java를 다시 호출합니다. –

1

UI없이 실행할 수도 있습니다. 이 소리로 콘솔 앱으로 Java APP를 만든 다음 Windows Service/Linux Daemon (운영체제는 언급하지 않음)로 실행하고 싶습니다. java 코드를 서비스로 실행할 수있는 Java 서비스 래퍼가 있습니다 (예 :this one) 또는 직접 작성할 수도 있습니다.

JNI를 배우려면 this book을 권장합니다. 필요로하는 것처럼 들리지만 JNI가 아니라 TCP 또는 다른 C++ 응용 프로그램이 응용 프로그램과 대화하는 데 사용할 수있는 유사한 인터페이스를 통해 노출 된 인터페이스입니다. JNI는 다른 프로세스가 앱과 대화하는 것을 허용하지 않습니다. Java 코드를 Java 자체에서 구현할 수없는 기능으로 확장하는 것이 있습니다. 일부 Windows API 함수를 호출합니다.

편집 : 그런데

,이 같은 일반 자바 안녕하세요 응용 프로그램은 콘솔 응용 프로그램입니다 :

public class HelloWorld { 
    public static void main(String[] args) { 
     System.out.println("Hello, World"); 
    } 
} 
+0

이 책은 java.sun.com/docs/books/jni/download/jni.pdf에서 무료로 다운로드 할 수 있습니다. – clartaq

0

예, 서비스 (데몬)로 자바를 실행할 수 있습니다. 간단히 코드를 실행하여 "데몬 화"할 수 있습니다. 이렇게하면 터미널 세션에서 분리되어 백그라운드에서 실행됩니다.

은 여기를보세요 :

:

https://github.com/mkowsiak/jnicookbook/tree/master/recipeNo022

는 자바 서비스 부분을 실행하는 방법을 확인하려면 여기 C.

내부

를 서비스를 실행하는 방법을 볼 수 https://github.com/mkowsiak/jnicookbook/tree/master/recipeNo029

JNI와 함께 즐거운 시간 보내십시오!

관련 문제