2014-01-06 7 views
1

그래서 최근에 Matlab에서 실행될 자바 애플릿을 연구 해왔다. (matlab은 큰 배열을 처리하고 파싱하는 쉬운 방법이기 때문에). 나는이 문맥에 문제가있다. 내 자바 프로그램에서 나는 보통에 따라 예외 및 기타 오류를 처리 :종료없이 Java 프로그램 종료 Matlab?

System.err.println("WARNING: [SOME ERROR MESSEAGE GOES HERE]"); 
System.exit(-1); 

는 내가 추구하는 것은 오류 매트랩 메시지 및 종료 자바 애플릿을받을 것입니다.

Matlab과 Java가 끝나면 내 바탕 화면으로 돌아옵니다.

내 Java 애플릿을 종료하는 방법에 대한 권장 사항이 있으며 이로 인해 사용자가 오류 메시지를 받도록 Matlab을 열어 두십시오.

+0

정확하게 이해한다면, Matlab을 다른 과정으로 실행하십시오. – Maroun

+0

이것이 실현 가능한지 여부를 모르겠지만 Matlab과 Java 프로세스 간의 통신 채널을 설정하여 리턴 코드보다 많은 정보를 교환 할 수 있습니다. [이 질문에 대한 의견 (http://stackoverflow.com/questions/12473083/choice-of-ipc-method)에서 ZeroMQ가 제안됩니다. 그 도서관을 모른다는 것만 큼 나는 당신의 요구 사항에 맞을 지 모르겠습니다. – watery

+0

@ ᴍarounᴍaroun 나는 그게 어떻게 풀릴지 잘 모르겠다. 당신은 물 같음을 추천하고 있는가? – SteewDK

답변

0

설명 : @watery에 감사하고 자바 코드는 MATLAB 인스턴스의 일부가 있음을 표시 MATLAB External Interfaces handbook. 따라서 System.exit(-1)은 Java 프로그램뿐만 아니라 MATLAB 자체도 종료합니다.

해결책 : matlab에서 Java 클래스를 실행하려는 경우 System.exit(-1)을 사용하지 마십시오. 대신 JAVA에서 검사되지 않은 예외를 throw 할 수 있습니다 (미리 정의 된 예외를 사용하거나 예외를 만들 수 있습니다).

예 : 당신이 체크되지 않은 예외를 직접 작성하고 if(problem)가 중첩되는 방법에 throws InsufficientInputException를 추가 할 필요가

if (problem) 
    throw new InsufficientInputException("[ERROR MESSAGE GOES HERE]"); 

.

public class InsufficientInputException extends Exception{ 
    public InsufficientInputException(String message) { 
     super(message); 
    } 
} 

오류 메시지, 와 (MATLAB)에 사용자를 떠나, 자바 프로그램을 종료하지만 MATLAB을 종료하지 않습니다.

+0

이것이 올바른 해결책이라면 @DennisJaheruddin이 제안한 것과 같이 답변으로 표시해야합니다. – watery