我无法在Windows上启动Solr 4.10.4,因为它说明了:
运行Solr
需要Java 1.7或更高版本
以下是它变得有趣的地方,我已经安装了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目录和Path的jre \ bin。)
答案 0 :(得分:2)
我在6.6.2中遇到了类似的问题,问题结果是solr.cmd脚本中的一个小错误。
在resolve_java_info子例程中,它正在进行字符串比较而不是版本上的数字比较。所以编辑这段代码:
<div class="title-wrapper">
<a>
<div class="title">A WITCH SCORNED</div>
</a>
</div>
<div class="title-wrapper corrected">
<a>
<div class="title">A WITCH SCORNED</div>
</a>
</div>
并改变
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" (
删除引号修复了问题。
答案 1 :(得分:1)
查看bin\solr.cmd
脚本。
这就是Solr确定要使用哪个JVM的地方。它也是错误消息的来源。 (https://github.com/apache/lucene-solr/blob/branch_4x/solr/bin/solr.cmd)
相关部分是这个(或类似的):
REM Verify Java is available
if NOT DEFINED JAVA_HOME goto need_java_home
"%JAVA_HOME%"\bin\java -version:1.8 -version > nul 2>&1
IF ERRORLEVEL 1 "%JAVA_HOME%"\bin\java -version:1.7 -version > nul 2>&1
IF ERRORLEVEL 1 goto need_java_vers
set "JAVA=%JAVA_HOME%\bin\java"
我认为问题在于您的%JAVA_HOME%
未正确设置。
由于它在5.1.0中运行且Java版本是正确的,为什么它不适用于4.10.4?
在Solr 5.x中重写了solr.cmd
脚本。比较已安装的两个版本。
答案 2 :(得分:0)
它最终不是变量,而是我试图开始使用Solr.cmd,我需要通过浏览示例启动Solr:java -jar start.jar。我不确定为什么Solr.cmd不起作用,但可以解决它。
答案 3 :(得分:0)
就我而言,我已经安装了Java 10.0.2,但出现了错误 错误:运行Solr需要Java 1.7或更高版本,但已安装1.8
我已经检查了代码,并打印了变量 JAVA_MAJOR_VERSION ,该变量始终设置为0,然后更改了行
REM Extract the major Java version, e.g. 7, 8, 9, 10 ...
for /f "tokens=2 delims=." %%a in ("!JAVA_VERSION_INFO!") do (
set JAVA_MAJOR_VERSION=%%a
)
到
REM Extract the major Java version, e.g. 7, 8, 9, 10 ...
for /f "tokens=1 delims=." %%a in ("!JAVA_VERSION_INFO!") do (
set JAVA_MAJOR_VERSION=%%a
)
注意:令牌已更改
对于我来说,它奏效了。万一它对您没有帮助,可以稍微调试一下solr.cmd。 :)
答案 4 :(得分:0)