С приведенным ниже кодом я пытаюсь получить элемент IPackageFragment для данного имени пакета. Но toString() возвращаемого IPackageFragment - com.abc.def (не открыто). Из-за этого, когда я пытаюсь получить доступ к методам всех классов в этом пакете, я получаю JavaModelException.
Примечание. Я могу открывать и просматривать java файлы в этом пакете в eclipse. Не могли бы кто-нибудь рассказать, что не так с этим пакетом.
private IPackageFragment getPackage(String name)
throws Exception
{
IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots();
for (int ii = 0; ii < roots.length; ii++){
IPackageFragment fragment = roots[ii].getPackageFragment(name);
if(fragment != null && fragment.exists()){
return fragment;
}
}
return null;
}
Элементы фрагментов пакета необходимо открыть, прежде чем их можно будет перемещать или манипулировать. Вы должны вызвать open() в фрагменте пакета, прежде чем вы сможете получить доступ к элементам в фрагменте пакета.