2013-05-08 2 views
2

Я строил приложения PhoneGap для BlackBerry уже около года. Внезапно, процесс сборки удара ошибки, как это:Ошибка сборки PhoneGap CreateProcess. C: Program не найден

build: 
    [exec] [INFO]      Parsing command line options 
    [exec] [INFO]      Parsing bbwp.properties 
    [exec] [INFO]      Validating application archive 
    [exec] [INFO]      Parsing config.xml 
    [exec] [WARNING]     Failed to find the <author> element 
    [exec] [INFO]      Populating application source 
    [exec] [INFO]      Compiling BlackBerry WebWorks applicatio 
n 
    [exec] I/O Error: Cannot run program "C:\Program": CreateProcess error=2, T 
he system cannot find the file specified 
    [exec] [ERROR]      RAPC exception occurred 

Я подозреваю, что это может иметь что-то делать с недавним обновлением Java

Я попробовал старый DOS 8.3 трюк (Java 7 может быть?) использования PROGRA~1 вместо Program Files в файлах bbwp.properties и project.properties. Ничто из этого не помогает.

Любые идеи, в которых еще может возникнуть проблема?

+0

Ну, это потому, что в этом пути есть пространство. Раньше я встречал такую ​​проблему, когда я вызывал файл .bat из сборки Ant и в .bat-файле, был такой путь. Хотя путь был процитирован '' '', это не работает. Итак ... что я обычно делаю, так это: никогда не устанавливайте программное обеспечение/библиотеку/sdk в папку, содержащую пробел на своем пути. – coolcfan

+0

Понял. Проблема заключается в том, что WHITE-файл ищет процесс сборки, у которого есть пробел в пути. Как я могу узнать, какой файл вызвал ошибку? – Axeva

+0

Ищите целевую 'build' в файле сборки, и она должна иметь задачу' exec', вызывающую некоторые внешние исполняемые файлы. Проверьте задачу 'exec', также проверьте внешний исполняемый файл, если это пакетный файл. – coolcfan

ответ

1

Я видел несколько других людей в Интернете, задающих один и тот же вопрос, поэтому я опубликую свое решение здесь, если оно поможет тем, кто попал в проблему в будущем.

Корень проблемы, похоже, связан с обновлением до Java 7. Сочетание этого и Apache Ant можно повесить на пути к файлам с пробелами. После нескольких часов возиться, лучшим решением было переустановить Java, Apache Ant, WebWorks и PhoneGap. Каждый из них помещался в папку с корня диска C: \ без пробелов в именах файлов.

C: 
├ \ant 
├ \java 
├ \phonegap 
└ \webworks 

После того, как я имел эту структуру организации, и сбросить все переменные среды (PATH, JAVA_HOME, ANT_HOME и т.д.), все строит начал работать снова. Просто убедитесь, что вы обновили файл project.properties в папке проекта.

Update:

Он также может быть полезно использовать DOS Если команда, чтобы увидеть, где Java находится на вашем жестком диске.

> where java 

В моем случае путь JAVA_HOME указывает на Java 1.6, но проверка версии Java из командной строки (java -version) показал, что Java 1,7 был бежится. Причина в том, что Java.exe был установлен в моей папке C: \ Windows \ System32 (почему?), И поскольку эта папка является первой записью в моей переменной PATH, эта версия java.exe запускается. Всегда.

Нижняя строка: используйте команду DOS Where, чтобы гарантировать, что версия java, управляемая ANT, действительно является той версией, которая, по вашему мнению, является.

0

Проблема заключается в том, что Webworks установщик копирует JAVA PATH до нескольких файлов:

installvariables.properties (<java>XXXXXXXXXXX</java>) 
bin\bbwp.properties (Java_Home=XXXXXXXXXXXX) 

Это приводит к ошибкам при компиляции, даже если вы изменили переменные PATH и JAVA Кладка.

Измените значение на правильный путь в этих файлах, чтобы решить эту проблему.

Рекомендуется устанавливать все это в пути без пробелов, поскольку это может привести к другим проблемам компиляции.