void (Library lib, List<String> paths) { Library.ModifiableModel modifiableModel = lib.getModifiableModel(); for (String root : lib.getUrls(OrderRootType.CLASSES)) { modifiableModel.removeRoot(root, OrderRootType.CLASSES); } if (paths != null) { for (String dir : paths) { VirtualFile pathEntry = LocalFileSystem.getInstance().findFileByPath(dir); if (pathEntry != null && !pathEntry.isDirectory() && pathEntry.getFileType() instanceof ArchiveFileType) { pathEntry = JarFileSystem.getInstance().getJarRootForLocalFile(pathEntry); } if (pathEntry != null) { modifiableModel.addRoot(pathEntry, OrderRootType.CLASSES); } else { modifiableModel.addRoot("file://"+dir, OrderRootType.CLASSES); } } } modifiableModel.commit(); }