2011-12-09 2 views
2

런타임에서 D.raw(anyObject);과 같은 정적 메소드로 Java 객체를 시각적으로 시각화하기 위해 프로젝트 작업 중입니다. 이제는 이클립스 플러그인으로 변환하려고하므로 출력이 일식 내부에 표시 될 수 있습니다. 하지만 작업 공간 프로젝트에서 사용하기 위해 플러그인에서 정적 메서드를 제공하는 방법을 모르겠습니다. 일부 .jar 라이브러리를 작업 영역에 제공하는 것이 가능할 것이라고 생각하지만 플러그인을 사용하는 단계를 관리하는 방법을 여전히 알지 못합니다. ...Java 응용 프로그램에서 메소드로 내 eclipse 플러그인 호출

여기에서 비슷한 문제에 대한 해결책을 찾았습니다. call a own eclipse plugin method from any java application 하지만 그와 함께, 내가 미리

세드릭

+0

왜 플러그인에서 작업 영역 응용 프로그램에서 메서드를 호출해야합니까? –

+0

아이디어는'System.out.println()'과 유사한 시각화를 가지지 만 그래픽 만 있습니다. 우리는 HTML 렌더링을 생성하고'D.raw()'가 호출 될 때 이클립스 내부에 실시간으로 표시하려고합니다. –

답변

0

에 ... 매개 변수로

덕분에 내 개체를 커밋 할 수 없습니다 당신은 단지 내에서 모든 패키지를 내보낼 래퍼 플러그인을 만들 수 있습니다. (기존 항아리의 새로운 플러그인 프로젝트).

새 플러그인을 만들려면 MANIFEST.MF -> 런타임 -> 내보내기 패키지를 편집하십시오. MANIFEST.MF 정상적으로는 다음과 같습니다

Manifest-Version: 1.0 
Bundle-ManifestVersion: 2 
Bundle-Name: Myplugin 
Bundle-SymbolicName: com.mycompany.myplugin 
Bundle-Version: 1.0.0.qualifier 
Bundle-Activator: com.mycompany.myplugin.Activator 
Bundle-Vendor: MYCOMPANY 
Require-Bundle: org.eclipse.ui, 
org.eclipse.core.runtime 
Bundle-RequiredExecutionEnvironment: JavaSE-1.6 
Bundle-ActivationPolicy: lazy 
Export-Package: com.mycompany.myplugin.mypackage1, 
com.mycompany.myplugin.mypackage2, 
com.mycompany.myplugin.mypackagexxx 

그런 다음 사용-를 다른 플러그인에 당신이 당신의 래퍼 플러그인 의존성에 추가 할 수 있습니다.

+0

흠, 그래서 사용자 응용 프로그램을 래핑하고 플러그인 내에서 액세스 할 수 있습니까? 하지만 내가 생각하는 방향이 다른 것 같아요. 아니면 내가 잘못 이해 한 것 같아요? –

2

실제 문제는 플러그인과 클래스가 별도의 JVM에서 실행된다는 것입니다.

하나 개의 솔루션은 다음과 같습니다

  1. 하여 검사 코드 (즉, 당신의 D.raw 함수를 호출)
  2. 가 검사 데이터를 직렬화는 검사하고자하는 코드에서 (내가 런타임 반사를 사용할 필요가 가정)를 호출 로그 파일에
  3. 는 플러그인 시각화에게 파일을 모니터링하고이 변경 될 때 직렬화 및 새로 고침 되세요

이 어떻게 리터와 유사하다 이클립스 플러그인 어댑터는 작동하지 않습니다.

이 중 '진짜'방법은 D.raw을 호출 할 필요가 없지만 jvisiualvm과 같은 도구에서 사용하는 것과 동일한 API를 사용하여 소켓을 통해 JVM과 직접 대화하는 것입니다.

+0

소켓 접근 방식에 대한 더 많은 통찰력을 갖고 있습니까? 더 많은 답변을 향상시킬 것입니다 :) – Simon