java - PhoneGap CreateProcess 构建错误。 C :\Program not found

标签 java cordova blackberry ant

我已经为 BlackBerry 开发 PhoneGap 应用程序大约一年了。突然,构建过程遇到了这样的错误:

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 更新有关(也许是 Java 7?)

我尝试了在 bbwp.properties 中使用 PROGRA~1 而不是 Program Files 的旧 DOS 8.3 技巧>project.properties 文件。这些似乎都没有帮助。

关于问题可能出在哪里的任何想法?

最佳答案

我在 Internet 上看到其他几个人问过同样的问题,所以我会在这里发布我的解决方案,以防将来遇到问题的人有所帮助。

问题的根源似乎与升级到 Java 7 有关。它和 Apache Ant 的组合在带有空格的文件路径上挂起。经过数小时的修改,最好的解决方案是重新安装 Java、Apache Ant、WebWorks 和 PhoneGap。每个文件都放在 C:\驱动器根目录下的一个文件夹中,文件名中没有空格。

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

一旦我有了这个组织结构,并重置了所有环境变量(PATH、JAVA_HOME、ANT_HOME 等),所有构建都重新开始工作。只需确保更新项目文件夹中的 project.properties 文件即可。

更新:

使用 DOS Where 命令查看 Java 在硬盘驱动器上的位置也可能会有帮助。

> where java

在我的例子中,JAVA_HOME 路径指向 Java 1.6,但从命令行检查 Java 版本 (java -version) 显示正在运行 Java 1.7。原因是 Java.exe 已安装在我的 C:\Windows\System32 文件夹中(为什么?),并且由于该文件夹是我的 PATH 变量中的第一个条目,所以运行的是该版本的 java.exe。总是。

底线:使用 DOS Where 命令确保 ANT 运行的 java 版本确实是您认为的版本。

关于java - PhoneGap CreateProcess 构建错误。 C :\Program not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16431972/

相关文章:

ios - Visual Studio Cordova - 无法部署应用程序

java - 如何将图像添加到 GridView 并为这些图像添加点击功能?

user-interface - 黑莓用户界面编程资源

java - Twitter Future 超时不适用于整个 flatMap 链

ios - 在 Phonegap 生成的应用商店中部署 .ipa 文件?

java - 静默安装 JDK,但在不同路径上安装 JRE

android - 如何设置cordova webview 背景,或者缓存?

http - CoverageInfo.getCoverageStatus() 与 CoverageInfo.isCoverageSufficient(),它们是一样的吗?

java - 如何解决使用 for 循环打印表格的 Java 问题?

java - 如何为 optaplanner 运行/实现 Benchmark?