2013-01-18 5 views
0

다음 명령 줄 인수를 사용하는 독립 실행 형 헤드리스 RCP가 있습니다."[email protected] : start"뒤에있는 마술?

Command-line arguments: -os macosx -ws cocoa -arch x86_64 -clean -consoleLog 
내가 성공적으로 바이너리를 생성 할 수

명령 행 도구로 실행 될 수 있지만, 문제는 내가

[email protected]:start, 
[email protected]:start, 
[email protected]:start, <--- 
[email protected] 

[email protected]:start, 
[email protected]:start, 
[email protected]:start, 
[email protected] 

에서 config.ini 파일을 수정해야한다는 것입니다

이 변경 사항이 없으면 바이너리를 실행할 때 이러한 오류 메시지가 나타납니다.

org.osgi.framework.BundleException: The bundle "org.eclipse.equinox.ds_1.4.0.v20120522-1841 [3]" could not be resolved. Reason: Missing Constraint: Import-Package: org.eclipse.equinox.internal.util.event; version="1.0.0" 
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1332) 
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java:1316) 
    at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:323) 

"[email protected] : start"뒤에있는 마술? 왜 내 변경 후 잘 작동합니까? 어떻게하면 헤드리스 RCP를 만들 때 항상 ini 파일을 수동으로 변경할 필요가 없도록 Eclipse IDE에서 설정을 할 수 있습니까?

답변

2

나는 변화의 마법을 설명 할 수 있지만 유감스럽게도 Eclipse에서 응용 프로그램을 내보내는 것에 익숙하지 않습니다.

는 사용할 수있는 묶음을 정의하고 (예 : start level) 시작해야하는 묶음을 정의하는 속성입니다. 플랫폼은 레벨 1에서 그 다음 번들 2를 시작하여 osgi.startLevel (기본적으로 6, 위의 링크 된 juno 문서에서 설명)까지 번들을로드하고 시작합니다.

org.eclipse.equinox.ds을 시작하려면 org.eclipse.equinox.internal.util.event 패키지 버전 1.0.0을 내보내는 번들을 플랫폼에서로드해야합니다. 일부 검색에서 이것은 org.eclipse.equinox.util 번들 인 것 같습니다.

따라서 @ 2에서 @ 3으로 변경하면 나중에 플랫폼 시작시에 util 번들이로드 된 지점까지 ds 번들의 시작을 푸시 할 수 있습니다. 나는 여기에 도움이되는 것이 org.eclipse.update.configurator 번들이라고 생각한다. (번들은 load all the bundles from the plugins directory 인 작업이다.)

관련 문제