简体   繁体   English

Sikuli:未找到Java错误

[英]Sikuli: Java not found error

While installing Sikuli, I get the following 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

This occurs when I run the runSetup.cmd file. 当我运行runSetup.cmd文件时,会发生这种情况。

I have installed both 32 and 64 bit versions of java and no other application seems to have a problem finding it (Like Minecraft and all Firefox application). 我已经安装了32位和64位版本的Java,其他应用程序似乎都找不到问题(例如Minecraft和所有Firefox应用程序)。

However, here are the locations of my Java installations: 但是,这是我的Java安装位置:

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

You need to add JAVA_HOME as a system variable, and reference this on the Path. 您需要将JAVA_HOME添加为系统变量,并在Path上引用它。

  • In windows, go to computer > Computer properties > advanced system properties > Advanced > Environment variables . 在Windows中,转到computer > Computer properties > advanced system properties > Advanced > Environment variables
  • Click on New under 'System Variables'. 单击“系统变量”下的“ New ”。
  • Give the variable name as JAVA_HOME and value as path/to/java . 将变量nameJAVA_HOME ,将value namepath / to / java
  • (For the path/to/java use the path to the Javascript Runtime Environment folder eg C:\\Program Files\\Java\\jre1.8.0_25\\ and not C:\\Program Files\\Java\\jre1.8.0_25\\bin ) (对于path/to/java路径,请使用Javascript Runtime Environment文件夹的路径,例如C:\\Program Files\\Java\\jre1.8.0_25\\而不是C:\\Program Files\\Java\\jre1.8.0_25\\bin

  • Edit the variable PATH and add %JAVA_HOME%/bin at the end. 编辑变量PATH并在末尾添加%JAVA_HOME%/bin Close and start your cmd again. 关闭并再次启动您的cmd。

  • Note that on some systems, there can be a maximum number of allowed characters in the path, so you may have to remove some entries from the path if you've exceeded the maximum. 请注意,在某些系统上,路径中最多可以有允许的字符数,因此,如果超出了最大值,则可能必须从路径中删除一些条目。 Do this with caution, and make a backup first (usually MS SQL Server entries are safe to delete) 请谨慎执行此操作,然后先进行备份(通常可以安全删除MS SQL Server条目)

This problem is because Oracle has released a new version of Java. 此问题是因为Oracle发布了Java的新版本。 And the Sikuli install is looking for the 2 previes versions. Sikuli安装程序正在寻找2个previes版本。 (Current path for me is: C:\\Program Files (x86)\\Java\\jre1.8.0_40) I had the same problem with installing Sikuli on my new computer. (对我来说,当前路径是:C:\\ Program Files(x86)\\ Java \\ jre1.8.0_40)我在新计算机上安装Sikuli时遇到了同样的问题。

What I did is I modified the installation file, so that I can use it to install Sikuli on every new computer in my company. 我所做的是修改了安装文件,以便可以用它在公司的每台新计算机上安装Sikuli。 And to make sikuli recognize the latest Java version. 并让sikuli识别最新的Java版本。

After modifing the "runSetup.cmd" you also need an adjusted "runIDE.cmd" for the IDE to recognize the latest Java version. 修改“ runSetup.cmd”后,您还需要调整后的“ runIDE.cmd”以使IDE识别最新的Java版本。

This is the adjusted code/file: 这是调整后的代码/文件:

runSetup.cmd 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 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

If you for example 'right-click' on the file "runSetup.cmd" and choose 'Edit' you get to see the code. 例如,如果您在文件“ runSetup.cmd”上单击“右键”,然后选择“编辑”,则会看到代码。 If you replace the 'original' code with my adjusted code it will be able to install using the latest Java version. 如果您将“原始”代码替换为我调整后的代码,则可以使用最新的Java版本进行安装。

For better compatibility, can try to download Java 7 32bit version, and set Java 7 installed path to Java Home environment variable. 为了获得更好的兼容性,可以尝试下载Java 7 32bit版本,并将Java 7安装路径设置为Java Home环境变量。 (if setup fail auto detection ). (如果设置失败自动检测)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM