OSGI 和Java Classloader

问题:当运行Eclipse的plugin去加载workspace的类时,是加载不到的,除非使用JavaProject的Classloader。

We want here to define a class loader for our Eclipse plugin that uses the project class loader to load any given class.

 

解决:

1.通过Project去加载

List<IJavaProject> javaProjects = new ArrayList<IJavaProject>();
IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
for(IProject project: projects){
 project.open(null /* IProgressMonitor */);
 IJavaProject javaProject = JavaCore.create(project);
 javaProjects.add(javaProject);
}

2. 提供上下文注入ClassLoader

它需要什么classloader传给它就行了

posted @ 2013-07-24 14:58  crazywings  阅读(415)  评论(0编辑  收藏  举报