Windows 7中的“Android Create”调用失败 - 缺少JDK

时间:2010-06-16 11:16:41

标签: windows android windows-7 java

我在Windows 7中设置Android dev环境时遇到问题。我按照here,指令以及几个环境子链接进行操作。我正在使用带有Android插件的Eclipse。我已经在不同的位置安装了几次Java JDK(jdk-6u20-windows-i586.exe) - 但我显然遗漏了一些东西。

每次我运行“android create avd --target 2 --name my_avd”时都会收到错误:

    C:\Users\andrew>android create avd --target 2 --name my_avd

WARNING: Java not found in your path.
Checking it it's installed in C:\Program Files\Java instead.


ERROR: No suitable Java found. In order to properly use the Android Developer
Tools, you need a suitable version of Java installed on your system. We
recommend that you install the JDK version of JavaSE, available here:
  http://java.sun.com/javase/downloads/

You can find the complete Android SDK requirements here:
  http://developer.android.com/sdk/requirements.html

此错误消息是我多次安装JDK的原因。首先,我尝试安装到我的e:驱动器上的某个位置。然后我将它移动到默认的loc(程序文件(x86)\ java \ jdk.6.something。我也尝试强制它进入程序文件\路径,但它仍然自动安装到(x86)路径。我我每次都在路径环境变量中添加了安装路径,但我仍然继续得到这个错误。我怀疑是Windows 7和android工具在查找JDK方面没有很好地协同工作,但谁知道呢,它可能是完全不同的东西。如果您之前看过这个错误,我将不胜感激。

8 个答案:

答案 0 :(得分:14)

我在意外安装了32位版本的Java SDK之后遇到了同样的问题。我卸载它并安装了64位版本(因为我使用的是Windows 7 64)。 Android SDK设置从未正确找到Java,即使我将其添加到PATH变量中也是如此!

经过一番挖掘后,我发现了一个java.exe浮动在我的system32文件夹中,它按照PATH变量的顺序出现在我的SDK路径之前。在我的system32文件夹中敲击java.exe后,Android安装程序运行得很好!

希望这有帮助。

答案 1 :(得分:7)

android命令只是一个Windows批处理文件,后者又使用批处理文件tools\lib\find_java.bat来查找Java。

查看源代码,它会执行以下操作:

  1. 查看java.exe上是否有PATH
  2. java.exe
  3. 下的某处找到%ProgramFiles%

    您的问题出现是因为您使用的是64位版本的Windows。这意味着%ProgramFiles%C:\Program Files,但Java安装在C:\Program Files (x86)中,因为它是一个32位应用程序,这意味着find_java.bat找不到它。

    因此,要解决此问题,您需要将包含java.exe的目录添加到PATH环境变量中。

    您需要将包含java.exe的目录(例如C:\Program Files (x86)\Java\jdk6\bin - 添加到PATH的末尾,并在其前面加一个分号,将其与上一个分开条目。

    This question on superuser.com涵盖了在Windows 7中维护环境变量。

答案 2 :(得分:6)

JDK检测确实很糟糕......

我的参数: Win 7 x64 + JDK x64(JDK路径(c:\ Program Files \ Java \ jre7 \ bin)

谷歌搜索和玩env变量可能是1小时 - 没办法。

最后提出这样的解决方案

通过硬编码java.exe的路径来手动编辑android-sdk-windows\tools\lib\find_java.bat

set java_exe=c:\Progra~1\Java\jre7\bin\java.exe
if not defined java_exe goto :CheckFailed

:SearchJavaW
set javaw_exe=c:\Progra~1\Java\jre7\bin\javaw.exe
if not exist %javaw_exe% set javaw_exe=%java_exe%
goto :EOF

这对我有用。

答案 3 :(得分:2)

在SDK工具文件夹中,转到libs并编辑find_java.bat。它通常可以在C:\Program Files (x86)\Android\android-sdk-windows\tools\lib中找到。

%PROGRAMFILES%的所有实例更改为%PROGRAMFILES(X86)%

我这样做了,错误就消失了。

答案 4 :(得分:1)

查找android-sdk-windows\tools\lib\find_java.bat并添加如下内容:

set java_exe=
call :TestJavaDir "%JAVA_HOME%"
if defined java_exe goto :EOF

答案 5 :(得分:1)

对我有用的是:

将java / bin目录的路径添加到系统Path变量中。不要包含java.exe。

Win 7 64bit的步骤:

  • 单击Windows按钮
  • 右键单击计算机
  • 从上下文菜单中选择属性
  • 点击左上角部分的高级系统设置
  • 单击属性对话框底部的“环境变量...”按钮
  • 在底部列表(系统变量)中找到“路径”变量
  • 点击“修改”按钮
  • 转到文本框的末尾,输入类似c:\ program的内容 files \ java \ jdk1.6.0_26 \ bin(确保它与你的名字一致) java目录!)
  • 点击确定
  • 点击确定
  • 点击确定

尝试一下!

HTH,

\ ^ /我l

答案 6 :(得分:1)

我在调用命令后将rem语句放在android.bat中并硬编码\ bin \ java.exe的路径:

rem Check we have a valid Java.exe in the path.
set java_exe=<..>\jdk1.6.0_31\bin\java.exe
rem call lib\find_java.bat
if not defined java_exe goto :EOF

因此设置其他变量javaw_exe相同:

set javaw_exe=<..>\jre1.6.0_31\bin\javaw.exe
if not exist %javaw_exe% set javaw_exe=%java_exe%
goto :EOF

答案 7 :(得分:-2)

C:\的Windows \ SysWOW64中

1 down vote

我也有同样的问题 - &GT;意外安装了32位版本的Java SDK - &gt;已卸载 - &gt;安装了64位版本(Windows 7 64) - &gt; - &GT; Android SDK设置从未正确发现Java!

我在C:\ Windows \ SysWOW64文件夹中发现了一个浮动的java.exe。 将此java.exe重命名为javaX.exe后,Android安装程序运行正常!