Sikuli:Java找不到错误

时间:2015-01-13 16:53:09

标签: java cmd sikuli

安装Sikuli时,出现以下错误:

C:\Users\adb\Downloads>C:\Users\adb\Downloads\runSetup.cmd
'Files' is not recognized as an internal or external command,
operable program or batch file.
+++ Java not found in standard places C:\Program Files or C:\Program Files (x86)
+++ JAVA_HOME not specified
+++ ended with some errors

当我运行runSetup.cmd文件时会发生这种情况。

我已经安装了32位和64位版本的java,没有其他应用程序似乎有问题找到它(像Minecraft和所有Firefox应用程序)。

但是,以下是我的Java安装的位置:

C:\Program Files\Java\jre1.8.0_25
C:\Program Files (x86)\Java\jre1.8.0_25

3 个答案:

答案 0 :(得分:4)

您需要将JAVA_HOME添加为系统变量,并在路径上引用它。

  • 在Windows中,转到computer > Computer properties > advanced system properties > Advanced > Environment variables
  • 点击'系统变量'。
  • 下的New
  • 将变量name设为JAVA_HOME,将value设为 path / to / java
  • (对于path/to/java,请使用Javascript运行时环境文件夹的路径,例如C:\Program Files\Java\jre1.8.0_25\而不是C:\Program Files\Java\jre1.8.0_25\bin

  • 编辑变量PATH并在结尾添加%JAVA_HOME%/bin。关闭并再次启动cmd。

  • 请注意,在某些系统上,路径中可以包含最多允许的字符数,因此如果超过最大值,则可能必须从路径中删除一些条目。请谨慎操作,并首先进行备份(通常可以安全地删除MS SQL Server条目)

答案 1 :(得分:1)

这个问题是因为Oracle发布了新版本的Java。而Sikuli安装正在寻找2个流行版本。 (我的当前路径是:C:\ Program Files(x86)\ Java \ jre1.8.0_40)我在新计算机上安装Sikuli时遇到了同样的问题。

我所做的是修改了安装文件,以便我可以使用它在我公司的每台新计算机上安装Sikuli。并使sikuli认识到最新的Java版本。

修改“runSetup.cmd”后,还需要调整“runIDE.cmd”,IDE才能识别最新的Java版本。

这是经过调整的代码/文件:

runSetup.cmd

@echo off
SETLOCAL

set SIKULIX_HOME=%~dp0
set PARMS=-Xms64M -Xmx512M -Dfile.encoding=UTF-8

if not defined JAVA_HOME goto CHECKJAVA
IF EXIST "%JAVA_HOME%\bin\java.exe" goto JAVA_OK
echo +++ JAVA_HOME specified but not useable %JAVA_HOME%
echo +++ looking for Java in standard places

:CHECKJAVA
set PROGRAMS=%ProgramFiles%
if defined ProgramFiles(x86) set PROGRAMS32=%ProgramFiles(x86)%

IF not EXIST "%PROGRAMS%\Java\jre1.8.0_40" goto JAVA7
set JAVA_HOME=%PROGRAMS%\Java\jre1.8.0_40
goto JAVA_OK

:JAVA7
IF not EXIST "%PROGRAMS%\Java\jre7" goto JAVA6
set JAVA_HOME=%PROGRAMS%\Java\jre7
goto JAVA_OK

:JAVA6
IF not EXIST "%PROGRAMS%\Java\jre6" goto JAVANO
set JAVA_HOME=%PROGRAMS%\Java\jre6
goto JAVA_OK

:JAVANO
if not defined %PROGRAMS32% goto JAVANO32

IF not EXIST "%PROGRAMS32%\Java\jre1.8.0_40" goto JAVA7
set JAVA_HOME=%PROGRAMS32%\Java\jre1.8.0_40
goto JAVA_OK

:JAVA7
IF not EXIST "%PROGRAMS32%\Java\jre7" goto JAVA6
set JAVA_HOME=%PROGRAMS32%\Java\jre7
goto JAVA_OK

:JAVA6
IF not EXIST "%PROGRAMS32%\Java\jre6" goto JAVANO32
set JAVA_HOME=%PROGRAMS32%\Java\jre6
goto JAVA_OK

:JAVANO32
echo +++ Java not found in standard places %PROGRAMS% or %PROGRAMS32%
echo +++ JAVA_HOME not specified
goto STOPIT

:JAVA_OK 
echo +++ running this Java
"%JAVA_HOME%\bin\java.exe" -version
PATH=%SIKULIX_HOME%libs;%PATH%
echo +++ trying to start Sikuli Setup in %SIKULIX_HOME%
"%JAVA_HOME%\bin\java.exe" %PARMS% -jar "%SIKULIX_HOME%sikuli-setup.jar" %*

GOTO FINALLY
:STOPIT
echo.+++ ended with some errors
:FINALLY
ENDLOCAL

runIDE.cmd

@echo off
SETLOCAL

set SIKULIX_HOME=%~dp0
set PARMS=-Xms64M -Xmx512M -Dfile.encoding=UTF-8 -Dsikuli.FromCommandLine

if not defined JAVA_HOME goto CHECKJAVA
IF EXIST "%JAVA_HOME%\bin\java.exe" goto JAVA_OK
echo +++ JAVA_HOME specified but not useable %JAVA_HOME%
echo +++ looking for Java in standard places

:CHECKJAVA
set PROGRAMS=%ProgramFiles%
if defined ProgramFiles(x86) set PROGRAMS32=%ProgramFiles(x86)%

IF not EXIST "%PROGRAMS%\Java\jre1.8.0_40" goto JAVA7
set JAVA_HOME=%PROGRAMS%\Java\jre1.8.0_40
goto JAVA_OK

:JAVA7
IF not EXIST "%PROGRAMS%\Java\jre7" goto JAVA6
set JAVA_HOME=%PROGRAMS%\Java\jre7
goto JAVA_OK

:JAVA6
IF not EXIST "%PROGRAMS%\Java\jre6" goto JAVANO
set JAVA_HOME=%PROGRAMS%\Java\jre6
goto JAVA_OK

:JAVANO
if not defined %PROGRAMS32% goto JAVANO32

IF not EXIST "%PROGRAMS32%\Java\jre1.8.0_40" goto JAVA7
set JAVA_HOME=%PROGRAMS32%\Java\jre1.8.0_40
goto JAVA_OK

:JAVA7
IF not EXIST "%PROGRAMS32%\Java\jre7" goto JAVA6
set JAVA_HOME=%PROGRAMS32%\Java\jre7
goto JAVA_OK

:JAVA6
IF not EXIST "%PROGRAMS32%\Java\jre6" goto JAVANO32
set JAVA_HOME=%PROGRAMS32%\Java\jre6
goto JAVA_OK

:JAVANO32
echo +++ Java not found in standard places %PROGRAMS% or %PROGRAMS32%
echo +++ JAVA_HOME not specified
goto STOPIT

:JAVA_OK 
echo +++ running this Java
set SIKULI_COMMAND=%*
"%JAVA_HOME%\bin\java.exe" -version
PATH=%SIKULIX_HOME%libs;%PATH%
echo +++ trying to start Sikuli IDE 
echo +++ using: %PARMS% -jar %SIKULIX_HOME%sikuli-ide.jar %SIKULI_COMMAND%
"%JAVA_HOME%\bin\java.exe" %PARMS% -jar "%SIKULIX_HOME%sikuli-ide.jar" %SIKULI_COMMAND%

GOTO FINALLY
:STOPIT
echo.+++ ended with some errors
:FINALLY
ENDLOCAL

例如,如果您对文件“runSetup.cmd”进行“右键单击”并选择“编辑”,则可以查看代码。如果用调整后的代码替换“原始”代码,它将能够使用最新的Java版本进行安装。

答案 2 :(得分:0)

为了更好的兼容性,可以尝试下载Java 7 32位版本,并将Java 7安装路径设置为Java Home环境变量。 (如果设置失败自动检测)。