当前位置: 首页 > 知识库问答 >
问题:

Sunspot Solr不是以“您需要Java运行时环境来运行Solr服务器”开头的

邹驰
2023-03-14

在重新部署我的应用程序和重新启动我的服务器之前,Sunsports Solr停止了,不能再启动了,尽管它在重新部署重新启动之前是工作的。当我奔跑时

rake sunspot:solr:run RAILS_ENV=production --trace

我收到以下

** Invoke sunspot:solr:start (first_time)
** Invoke environment (first_time)
** Execute environment
[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.
** Execute sunspot:solr:start
rake aborted!
You need a Java Runtime Environment to run the Solr server

但是java-version返回以下内容:

java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.4.el6_5-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)

不知道该怎么办了,已经尝试从应用程序中删除solr文件夹,并再次运行安装(rails gsunspot_solr:安装),但没有幸运...

我使用的是Ruby 2.0.0 Rails 4.0.0。rc1和太阳黑子solt的最后版本

共有3个答案

景帅
2023-03-14

“rake”无法找到java。确保java可执行文件位于rake任务可以看到的路径中。

韦俊英
2023-03-14

我也犯了同样的错误。当运行以下命令时。

$ 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工作。阅读本文(OracleJDK和OpenJDK之间的区别)

在后台运行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
充子航
2023-03-14

您需要确保您有一个有效的Java运行时(例如/usr/bin/Java),并且安装了一个有效的JDK。

运行“which java”时,如果没有安装有效的JDK,则会出现一个错误。

如果没有同时安装Solr服务器和Solr服务器,则无法运行Solr服务器。

 类似资料:
  • 问题内容: 如我所见,使用Java 8时,显而易见的代码无论是“对象”流还是原始流(即和朋友),都将仅使用: 但随后,也有不少“可流动资源” 。 读取javadoc时不清楚的是流是否始终是顺序的,以及流是否始终是并行的… 然后是尤其是它之一,它可以是甚至是它。 我的直觉是,事实上,无论a是否可以默认并行,还是完全并行,都是由其底层… 我在正确的轨道上吗?我已经阅读并再次阅读了javadocs,但仍

  • 刚刚在Yosemite上安装了一个新版本的Kepler 64bit“面向Java开发人员”,在第一次启动时就出现了这个错误。有什么办法解决吗?真的不想降级我的Java版本!

  • AST或字节码的解释过程只是在代码过程层面,不足以成为一个完整的运行,因为程序计算是需要数据和存储空间的,光有代码跑不起来,需要运行时环境,至少要有数据,实际情况中还需要一些其他信息。为讨论方便,在解释器中将运行时环境抽象为前述的env对象,通过一些接口来实现存取,这里先只讨论单执行序列,不考虑并发 env在前面的分析中总共就涉及了三个接口,get,set和set_exception(当然还应该有

  • 我是新来的角度。我已经在aws中的docker容器中部署了一个角度应用程序。应用程序需要连接到aws s3 bucket。我不需要硬编码aws键,所以我在docker中设置了一个环境变量。angular被部署为ngbuild中的dist文件夹由nginx docker容器提供服务。 一旦dist文件夹中的内容被送达服务器,是否可以通过角度读取服务器环境变量?就像php和nodejs中的env函数一

  • 我刚刚下载了Eclipse并尝试运行它,它给了我这个错误消息: 错误:打开注册表项'Software\JavaSoft\Java运行时环境 到我得到: java版本“1.8.0_231” Java(TM)SE运行时环境(构建1.8.0_231-B11) Java HotSpot(TM)64位服务器VM(构建13.0.1+9,混合模式,共享) 我使用的是Windows 10 Pro EclipseI

  • 我试图在我的Windows XP机器上摆脱旧版本的Java(因为我还有1.6和1.7)。卸载1.6时,我得到了一个关于Java运行时环境的错误。当我尝试启动Java控制面板时,它会给我以下错误: 系统找不到指定的注册表项: HKEY_LOCAL_MACHINE\软件\JavaSoft\Java运行时环境\1.7.0_05 我尝试过重新安装Java,但这一点也不起作用。而且我不能完全删除Java,因