【问题标题】:Sunspot::Solr::Server::JavaMissing: You need a Java Runtime Environment to run the Solr serverSunspot::Solr::Server::JavaMissing:您需要一个 Java 运行时环境来运行 Solr 服务器
【发布时间】:2015-07-28 08:14:33
【问题描述】:

尝试使用 sunspot 启动 Solr,但由于收到此错误而遇到 Java 运行时环境问题。

root@oktobTest:~# dokku run oktob bundle exec rake sunspot:solr:start
rake aborted!
Sunspot::Solr::Server::JavaMissing: You need a Java Runtime Environment to run the Solr server
/app/vendor/bundle/ruby/2.1.0/gems/sunspot_solr-2.2.0/lib/sunspot/solr/server.rb:203:in `ensure_java_installed'
/app/vendor/bundle/ruby/2.1.0/gems/sunspot_solr-2.2.0/lib/sunspot/solr/server.rb:27:in `initialize'
/app/vendor/bundle/ruby/2.1.0/gems/sunspot_solr-2.2.0/lib/sunspot/solr/tasks.rb:38:in `new'
/app/vendor/bundle/ruby/2.1.0/gems/sunspot_solr-2.2.0/lib/sunspot/solr/tasks.rb:38:in `server'
/app/vendor/bundle/ruby/2.1.0/gems/sunspot_solr-2.2.0/lib/sunspot/solr/tasks.rb:10:in `block (3 levels) in <top (required)>'
Tasks: TOP => sunspot:solr:start
(See full trace by running task with --trace)

Solar 已在远程服务器上启动并运行。

Java 已安装

root@oktobTest:~# which java
/usr/bin/java

这是sudo update-alternatives --config java的输出

root@oktobTest:~# sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-8-oracle/jre/bin/java          1073      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
* 2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1072      manual mode
  3            /usr/lib/jvm/java-8-oracle/jre/bin/java          1073      manual mode

我编辑了/etc/profile 文件以导出受hereherejavaandme 讨论启发的路径

JAVA_HOME=/usr/java/default
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH

我不确定上面的路径是否正确。

config/sunspot.xml文件

production:
  solr:
    hostname: localhost
    port: 8983
    log_level: WARNING
    path: /solr/production
    # read_timeout: 2
    # open_timeout: 0.5

development:
  solr:
    hostname: localhost
    port: 8982
    log_level: INFO
    path: /solr/development

test:
  solr:
    hostname: localhost
    port: 8981
    log_level: WARNING
    path: /solr/test

【问题讨论】:

    标签: java ruby-on-rails solr sunspot sunspot-rails


    【解决方案1】:

    我遇到了同样的错误。运行以下命令时。

    $ bundle exec rake sunspot:solr:start -t
    
    ** Invoke sunspot:solr:start (first_time)
    ** Invoke environment (first_time)
    ** Execute environment
    ** Execute sunspot:solr:start
    rake aborted!
    Sunspot::Solr::Server::JavaMissing: You need a Java Runtime Environment to run the Solr server
    

    通过使用这个命令

    $ bundle exec rake --execute 'puts which java'  
    

    我得到'/usr/bin/java'。

    但是通过下面的命令

    $ java --version -> 'No Java runtime present, requesting install.
    

    我使用的是 Mac OSX,它会提示一条消息,然后单击更多信息会转到:

    oracle.com/technetwork/java/javase/downloads/index.html
    

    所以我从链接中安装了 JDK 8:

    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    

    Mac OSX

    http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-macosx-x64.dmg
    
    $ java -version
    java version "1.8.0_131"
    Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
    

    在 Solr 服务器成功运行之后:) .

    在您的情况下,您必须从上述链接重新安装 JDK 才能使其正常工作

    你有 openJDK 运行环境。切换到 Java(TM) SE 运行时环境,以使 Solr 工作。阅读本文 (difference-between-oracle-jdk-and-open-jdk)

    通过

    运行 Solr 服务器后台
    $ bundle exec rake sunspot:solr:start -t
    
    Successfully started Solr ...
    

    停止 Solr 服务器:

    $ bundle exec rake sunspot:solr:stop -t 
    

    在前台启动solr服务器:

    $ bundle exec rake sunspot:solr:run -t
    

    【讨论】:

      【解决方案2】:

      对我来说,重新安装 JDK(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) 解决了在 El Capitan 中第一次使用 solr 时发生的问题

      【讨论】:

        【解决方案3】:

        有一些关于这个问题的主题。如果您确定服务器上的 Java 没有问题,请尝试在相关环境的配置文件 (config/sunspot.yml) 中粘贴“solr_home: solr”这一行并通过“RAILS_ENV=[your_env] bundle exec 启动 solr 服务器”太阳黑子:solr:start"

        【讨论】:

        • 我做了solr_home: solr 但没有成功,当我在命令中包含RAILS_ENV=production 时,我收到App oktob RAILS_ENV=production does not exist
        • 抱歉,我认为您的机器/主机存在问题,正如您所见,您甚至无法启动简单的命令。您在哪里托管以及您使用的是哪个发行版?
        • 我正在使用 DigitalOcean 和 Ubuntu 以及使用 Dokku 部署的 Rails,但一切正常,演示应用程序在 46.101.47.185 和 Solor 在 46.101.47.185:8983/solr/# 运行
        • 当然,所以也许本教程会有所帮助:link
        • 是的,我将这篇文章作为我的主要来源。
        猜你喜欢
        • 2014-01-25
        • 2014-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多