Программный запуск ant: "Невозможно использовать SUN rmic"
Я запускаю Ant программно из класса Java:
File buildFile= new File("buildAppl.xml");
if (!buildFile.exists()) {
return false;
}
Project p = new Project();
p.setUserProperty("ant.file", buildFile.getAbsolutePath());
p.setProperty("java.home", "C:\\Program Files\\Java\\jdk1.6.0_37");
p.addBuildListener(logger);
try {
p.fireBuildStarted();
p.init();
ProjectHelper helper = ProjectHelper.getProjectHelper();
p.addReference("ant.projectHelper", helper);
helper.parse(p, buildFile);
p.executeTarget("build");
p.fireBuildFinished(null);
} catch (BuildException e) {
p.fireBuildFinished(e);
return false;
}
Когда я отлаживаю его с помощью Exclipse, я получаю следующую ошибку:
X: \ update \ jTag \ build \ buildAppl.xml: 114: при выполнении этой строки произошла следующая ошибка: X:\update\jTag\project\buildAppl.xml:107: невозможно использовать SUN rmic, так как он недоступен. Распространенным решением является установка переменной окружения JAVA_HOME
Я проверил следующее:
- Переменные среды JAVA_HOME и PATH установлены правильно.
- Параметр eclipse "Установленные JRE" по умолчанию - C:\Program Files\Java\jdk1.6.0_37
- Свойство проекта "java.home" установлено в "C:\Program Files\Java\jdk1.6.0_37" (см. Выше)
Описание задачи rmic в файле сборки выглядит примерно так:
<rmic base="${classDirClient}" debug="true" classname="x.y.z.ProcessingServiceRmiImpl">
<classpath>
<fileset refid="classpathClient"/>
</classpath>
</rmic>
<rmic base="${classDirClient}" debug="true" classname="x.y.z.RmiXmlMessengerClient">
<classpath>
<fileset refid="classpathClient"/>
</classpath>
</rmic>
При интерактивном запуске Ant в Eclipse он работает нормально.
Что я могу сделать, чтобы обойти эту ошибку?
1 ответ
Начиная с Java 5, rmic
больше не требуется. Система RMI в Java 5 и более поздних версиях может работать с использованием динамических прокси, а не статически предварительно скомпилированных заглушек, поэтому вам нужно только rmic
если вам нужно поддерживать клиентов на Java 1.4 или более ранней версии.