运行 Solr 需要 Java 1.7 或更高版本,但已安装 1.8

标签 java solr

我无法在 Windows 上启动 Solr 4.10.4,因为它指出:

Java 1.7 or later is required to run Solr

有趣的地方在于,我已经安装了 Java JRE 1.8_102,如果我在命令提示符下键入 java -version,它会正确显示 Java 版本。如果我尝试使用 Solr.cmd -f 在下一行启动,它会给出错误。

为了进行另一级别的测试,我使用了 Solr 5.1.0,它通过 Solr.cmd -f 正常启动

既然能在5.1.0上运行,而且Java版本是正确的,为什么不能在4.10.4上运行呢?

据我所知,我正确设置了 JAVA_HOME 环境变量/路径和注册表项,否则 Solr 5.1.0 将无法启动。 (我指向 HOME 的 jre 目录和路径的 jre\bin)。

最佳答案

我在 6.6.2 中遇到了类似的问题,结果证明是 solr.cmd 脚本中的一个小错误。

在 resolve_java_info 子例程中,它正在对版本进行字符串比较而不是数字比较。所以编辑这段代码:

REM Extract the major Java version, e.g. 7, 8, 9, 10 ...
for /f "tokens=1,2 delims=." %%a in ("!JAVA_VERSION_INFO!") do (
  if "%%a" GEQ "9" (
    set JAVA_MAJOR_VERSION=%%a
  ) else (
    set JAVA_MAJOR_VERSION=%%b
  )
)

和改变

  if "%%a" GEQ "9" (

到:

  if %%a GEQ 9 (

通过删除引号解决了问题。

关于运行 Solr 需要 Java 1.7 或更高版本,但已安装 1.8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46125765/

相关文章:

java - 我的 Android UI 无法运行?

jakarta-ee - Tomcat 或 Glassfish 上的 Solr?

ruby-on-rails - Sunspot Solr 不使用简单范围

ruby-on-rails - 如何直接从 Github 而不是通过 Rubygems 使用 Sunspot 的边缘版本?

java - SolrQuery 不返回少于 3 个字符的结果

java - 使用 Tomcat 进行调试

java - 程序仅读取一行而不是整个文件

java - 如何解决maven中的java.lang.reflect.InitationTargetException

java - 让 Java 运行时忽略 serialVersionUIDs?

Solr 添加文档时出错