【问题标题】:Spring Cloud DataFlow Local-Server 1.2.2 fails to startup on Windows 10Spring Cloud DataFlow Local-Server 1.2.2 在 Windows 10 上启动失败
【发布时间】: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 in jre`但在jre\bin中因此设置JAVA_HOME相应

标签: java spring-cloud-dataflow


【解决方案1】:

这是一个错误:(仅影响 1.2.2.RELEASE,由 1.2.3.RELEASE 修复)

https://github.com/spring-cloud/spring-cloud-deployer-local/issues/58

“解决方法” 解决方案是转到系统上 java 的 JRE 路径并运行以下命令

(请注意其他用户在命令提示符窗口中找到您的 java 路径类型echo %JAVA_HOME%,如果 java 主路径中有“jdk”,请确保将其更改为“jre”以用于下面的“cd”命令. 我们需要导航到 jre 目录而不是 jdk 我们还附加了 '\bin')

  1. 导航到 JRE 的 bin 目录

cd C:\Program Files\Java\jre1.8.0_131\bin (notice: in the path "jre1.8" not jdk)

  1. 在同一目录中复制名为“java”的“java.exe”

复制java.exe java

错误/解决方法摘要:

这个错误基本上是......开发人员期望java可执行文件被称为java而不是java.exe,因为它在Windows操作系统上被命名。所以解决方法是复制 java.exe 并在该 JRE 的 bin 目录中将其命名为 java ...

不知道这样的东西是如何让它进入生产版本的......:/

【讨论】:

  • 嗨,@Selwyn。没有针对 Windows 的 CI 计划是一个疏忽——我们现在有了它。建议的解决方法可以让您暂时继续前进。我们正在努力解决这个问题 - 请跟踪 spring-cloud/spring-cloud-deployer-local#59 PR 以了解修复进度和发布日期。
  • 解决方法仍然对我不起作用,但指出它的错误并链接到问题很有价值。标记为已解决。
  • @PatrickHuber 确保您在系统上的正确 JRE 路径中执行解决方法。正确的将是 %JAVA_HOME% 环境变量所指向的 jre。堆栈跟踪中的异常应该为您提供有关哪个版本是正确路径的提示
【解决方案2】:

此错误已在 1.2.3.RELEASE 中修复

【讨论】:

  • 像魅力一样工作!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-16
  • 2020-09-09
  • 1970-01-01
  • 2019-05-13
  • 2020-04-12
  • 2012-03-25
  • 2021-09-06
相关资源
最近更新 更多