【发布时间】:2017-12-05 12:20:33
【问题描述】:
我正在尝试在此链接http://cloud.spring.io/spring-cloud-dataflow/#quick-start 上遵循 Spring Cloud 数据流教程。
在第 2 步时,执行以下行
java -jar spring-cloud-dataflow-server-local-1.2.2.RELEASE.jar
导致以下异常:
2017-07-01 16:21:00.218 WARN 3224 --- [ main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'taskService' defined in class path resource [org/springframework/cloud/dataflow/server/config/features/TaskConfiguration.class]: Unsatisfied dependency expressed through method 'taskService' parameter 5; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'taskLauncher' defined in class path resource [org/springframework/cloud/deployer/spi/local/LocalDeployerAutoConfiguration.class]: Unsatisfied dependency expressed through method 'taskLauncher' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.cloud.deployer.local-org.springframework.cloud.deployer.spi.local.LocalDeployerProperties': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.deployer.spi.local.LocalDeployerProperties]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: Java executable discovered via 'java.home' system property 'C:\Program Files\Java\jdk1.8.0_131\jre' is not executable or does not exist.
我认为关键是 'c:\program files\java\jdk1.8.0_131\jre' 似乎是 java 二进制文件的错误路径。我希望这是 %JRE_HOME%\bin 目录。
我写了一个小程序来转储系统属性,它产生了以下内容:
java.home: C:\Program Files\Java\jdk1.8.0_131\jre
我的 JAVA_HOME、JRE_HOME、CLASSPATH 和 JDK_HOME 环境变量设置如下
JAVA_HOME C:\Program Files\Java\jdk1.8.0_131
JDK_HOME %JAVA_HOME%
JRE_HOME %JAVA_HOME%\jre
CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib
PATH 变量设置为 %JAVA_HOME%\bin
我已经多次重新启动命令提示符。
当我为 1.1.4 版本运行以下命令时,服务器启动时没有错误:
java -jar spring-cloud-dataflow-server-local-1.1.4.RELEASE.jar
我已尝试删除 JRE_HOME 变量并将 CLASSPATH 设置为。
更新:添加 dir c:\java.exe /s /b 的输出
c:\Program Files\Java\jdk1.8.0_131\bin\java.exe
c:\Program Files\Java\jdk1.8.0_131\jre\bin\java.exe
c:\Program Files\Java\jre1.8.0_131\bin\java.exe
c:\Program Files (x86)\Java\jre1.8.0_131\bin\java.exe
c:\ProgramData\Oracle\Java\javapath\java.exe
c:\ProgramData\Oracle\Java\javapath_target_260505593\java.exe
c:\Users\All Users\Oracle\Java\javapath\java.exe
c:\Users\All Users\Oracle\Java\javapath_target_260505593\java.exe
【问题讨论】:
-
dir c:\java.exe /s /b的输出是什么? -
>c:\java.exe /s /b 'c:\java.exe' 不是内部或外部命令、可运行程序或批处理文件。
-
你打错了。确保你在 cmd 中运行它,并且完全按照上面的方式运行
-
我的错误>dir c:\java.exe /s /bc:\Program Files\Java\jdk1.8.0_131\bin\java.exe c:\Program Files\Java\jdk1.8.0 _131\jre\bin\java.exe c:\Program Files\Java\jre1.8.0_131\bin\java.exe c:\Program Files (x86)\Java\jre1.8.0_131\bin\java.exe c: \ProgramData\Oracle\Java\javapath\java.exe c:\ProgramData\Oracle\Java\javapath_target_260505593\java.exe c:\Users\All Users\Oracle\Java\javapath\java.exe c:\Users\All Users \Oracle\Java\javapath_target_260505593\java.exe
-
您介意将此添加到您的问题中吗?它现在的样子几乎是不可读的。除此之外,专注于 x86 或 x64 Java 并卸载另一个可能是个好主意。并使用Java安装目录的短名称(例如
C:\Progra~1,您可以使用dir C:\prog* /X找到它)或将您的Java安装到C:\dev´. I think to cause of your problems is that Java is not injre`但在jre\bin中因此设置JAVA_HOME相应
标签: java spring-cloud-dataflow