IVMConnector.connect
需要一個ILaunch
參數,該參數又保留ISourceLocator
。源定位器有一個ISourceContainer
實例的列表。
源容器實例是根據解析的IRuntimeClasspathEntry
s列表構建的。一些例子:
List<IRuntimeClasspathEntry> classpathEntries = new ArrayList<>();
// 1. Adding a IJavaProject as a classpath entry
classpathEntries.add(JavaRuntime.newProjectRuntimeClasspathEntry(javaProject));
// 2. Adding external jar files
classpathEntries.add(JavaRuntime.newArchiveRuntimeClasspathEntry(jarPath));
// 3. Adding a JRE entry
classpathEntries.add(JavaRuntime.computeJREEntry(launch.getLaunchConfiguration()));
的類路徑條目然後需要解決的問題,並轉換爲源容器
// 4. resolve the classpath entries
IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveSourceLookupPath(classpathEntries.toArray(new IRuntimeClasspathEntry[0]), launch.getLaunchConfiguration());
// 5. convert them to source references
ISourceContainer[] containers = JavaRuntime.getSourceContainers(resolved));
此時源碼C