Как дождаться завершения Eclipse IProject.create () и IProject.open () перед запуском проекта Eclipse Java - PullRequest
4 голосов
/ 24 августа 2011

У меня есть плагин Eclipse, который автоматически загружает существующий проект Eclipse Java в рабочее пространство, открывает его и, наконец, запускает приложение Java. Если проект Java уже существует в рабочей области, плагин обновляет проект относительно проекта в файловой системе.

При выполнении только обновления плагина работает нормально, но когда плагин сначала импортирует проект, вызывая IProject.create (), открывает его и запускает, я получаю диалоговое окно с сообщением об ошибке, что программа не найдена.

IProject.create () и open () называются длительными операциями. Есть ли какой-то способ подождать, пока IProject.create () не будет завершен, а затем вызвать IProject.open, а после завершения открытого metadod вызвать метод project.run ()?

1 Ответ

4 голосов
/ 24 августа 2011

IProject#create() и IProject#open() оба являются методами блокировки, поэтому вам не нужно делать ничего особенного, чтобы «ждать их» - когда управление возвращается на сайт вызова, они заканчивают создание и открытие проекта соответственно.

Содержит ли проект исходный код Java, который необходимо скомпилировать? Если это так, вам, вероятно, следует также собрать проект после его открытия и перед попыткой запустить на нем Java-программу. Попробуйте использовать это:

project.build(IncrementalProjectBuilder.FULL_BUILD, monitor);
...