Sikuli: Java 未找到错误
Sikuli: Java not found error
安装 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
您需要将JAVA_HOME
添加为系统变量,并在路径中引用它。
- 在 windows 中,转到
computer > Computer properties > advanced system properties > Advanced > Environment variables
。
- 单击 'System 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 服务器条目可以安全删除)
为了更好的兼容性,可以尝试下载Java7 32bit版本,并将Java7的安装路径设置为JavaHome环境变量。 (如果设置自动检测失败)。
这个问题是因为Oracle发布了新版本Java。 Sikuli 安装正在寻找 2 个预览版本。 (我当前的路径是:C:\Program Files (x86)\Java\jre1.8.0_40)我在新电脑上安装 Sikuli 时遇到了同样的问题。
我所做的是修改了安装文件,这样我就可以用它在我公司的每台新电脑上安装Sikuli。并让 sikuli 识别最新的 Java 版本。
修改 "runSetup.cmd" 后,您还需要为 IDE 调整 "runIDE.cmd" 以识别最新的 Java 版本。
这是调整后的code/file:
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" 上 'right-click' 并选择 'Edit',您将看到代码。如果您将 'original' 代码替换为我调整后的代码,它将能够使用最新的 Java 版本进行安装。
安装 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
您需要将JAVA_HOME
添加为系统变量,并在路径中引用它。
- 在 windows 中,转到
computer > Computer properties > advanced system properties > Advanced > Environment variables
。 - 单击 'System 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 服务器条目可以安全删除)
为了更好的兼容性,可以尝试下载Java7 32bit版本,并将Java7的安装路径设置为JavaHome环境变量。 (如果设置自动检测失败)。
这个问题是因为Oracle发布了新版本Java。 Sikuli 安装正在寻找 2 个预览版本。 (我当前的路径是:C:\Program Files (x86)\Java\jre1.8.0_40)我在新电脑上安装 Sikuli 时遇到了同样的问题。
我所做的是修改了安装文件,这样我就可以用它在我公司的每台新电脑上安装Sikuli。并让 sikuli 识别最新的 Java 版本。
修改 "runSetup.cmd" 后,您还需要为 IDE 调整 "runIDE.cmd" 以识别最新的 Java 版本。
这是调整后的code/file:
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" 上 'right-click' 并选择 'Edit',您将看到代码。如果您将 'original' 代码替换为我调整后的代码,它将能够使用最新的 Java 版本进行安装。