我知道这个问题已经被问过好几次了,但似乎没有一个答案奏效。
短版:我需要让Ant指向我的JDK而不是JRE。
长版:
我的问题是,我正试图做一些Android
自动化,我正在使用Powershell
脚本来启动它。Powershell脚本运行后,JUnit测试将通过Ant构建运行。但是当我构建时,我得到这个错误:
BUILD FAILED
C:Androidadt-bundle-windowssdktoolsantbuild.xml:598: The following error occurred while executing this line:
C:Androidadt-bundle-windowssdktoolsantbuild.xml:713: The following error occurred while executing this line:
C:Androidadt-bundle-windowssdktoolsantbuild.xml:727: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "C:AndroidJre7"
我认为问题可能是我没有正确设置JAVA_HOME变量,所以我检查了:
下面是从命令行运行JAVA_HOME的输出:
C:AndroidJDK
下面是我在命令行中运行set
的输出:
C:AndroidJDK
下面是我从Powershell命令行运行$env:$JAVA_HOME
的输出
C:AndroidJDK
我到处看,似乎JAVA_HOME
路径被设置为:
C:AndroidJDK
我也尝试在Android中更新build.xml
文件,但那不起作用。我看了ant.bat
文件,但这没有帮助。我真的不知道该怎么做。
这是我的路径:
PATH=C:Androidadt-bundle-windowssdkplatform-tools;C:Program FilesCommon FilesMicrosoft SharedMicrosoft Online Services;C:Program Files (x86)Common Fil
esMicrosoft SharedMicrosoft Online Services;C:windowssystem32;C:windows;C:
windowsSystem32Wbem;C:windowsSystem32WindowsPowerShellv1.0;C:Program FilesMicrosoftWeb Platform Installer;C:Program Files (x86)Microsoft ASP.NETASP.NET Web Pagesv1.0;C:Program Files (x86)Windows Kits8.0Windows Performance Toolkit;C:Program FilesMicrosoft SQL Server110ToolsBinn;C:AndroidJDKbin;C:Androidapache-ant-1.9.1bin;C:Androidandroid-ndk-r8e;C:Androidadt-bundle-windowssdktools;Cperlx86bin;C:AndroidJDKbin;
以下是我看过并尝试过的链接列表:
Java ant Eclipse运行错误
Ant构建不工作:无法找到javac编译器
Java ant Eclipse运行错误
为什么ANT告诉我JAVA_HOME是错误的,当它不是?
我肯定还有几个,但我不记得我试过的所有东西,但我现在花了几个小时在这个上面。
我在戴尔电脑上运行Windows 8。我已经安装了JDK 7,以及Android Eclipse和SDK。我使用的是Ant 1.9.1
如果我遗漏了什么,我很抱歉。任何帮助都会很感激。
尝试设置系统环境变量:
setx JAVA_HOME C:AndroidJDK
为了解决我的问题,我最终不得不卸载&重新安装JDK,确保不安装包含在JDK中的JRE(第二个版本,"独立的"JRE,而不是包含在JDK中的JRE)。
我还必须重新安装Ant。