我正在运行Resque后台任务,并在调用使用Rjb的gem时不断出现分段错误.但是,当不在后台运行时,一切正常.这是gem中的一行,导致错误:
def self.rjb_initialize
return if ::Rjb::loaded?
::Rjb::load(nil, self.jvm_args) #THIS IS WHERE THE ERROR TRACES TO
set_java_logging if self.log_file
end
Run Code Online (Sandbox Code Playgroud)
宝石加载.jar文件,你可以看到,但同样,一切都很完美,当不在后台时.什么可能导致问题,是否可以修复它?
ruby-on-rails background-process segmentation-fault ruby-on-rails-3 rjb
我已经设置了JAVA_HOME变量
heroku config:add JAVA_HOME=/usr/lib/jvm/java-6-openjdk
Run Code Online (Sandbox Code Playgroud)
检查heroku配置是否显示带有值的变量,然后按下:
git push heroku master
Run Code Online (Sandbox Code Playgroud)
仍然得到
JAVA_HOME is not set
Run Code Online (Sandbox Code Playgroud)
Bundler正在安装RJB gem时出错.
我可以成功地将相同的源部署到另一个Heroku应用程序,并且所有环境变量都是相同的.
怎么了?
我在UBUNTU 11上安装了ruby gem的RJB.*我添加了
export JAVA_HOME=/usr/lib/jvm/java-6-...
export PATH=$PATH:$JAVA_HOME/bin
Run Code Online (Sandbox Code Playgroud)
到.bashrc主目录的文件.但它仍然会引发错误或JAVA_HOME不设置.
有谁知道什么是错的?
echo $JAVA_HOME显示正确的路径.然后我再次登录,甚至重启.但仍然会抛出同样的错误.
我正在尝试实现Ruby Java Bridge(RJB)gem以与JVM通信,以便我可以运行Open-NLP gem.我在Windows 8上安装并运行了Java.至少我所知道的所有迹象都表明Java已经安装并且可以运行.但是,使用RJB的尝试失败并显示消息"无法创建Java VM".(在其他情况下,我有时会为"小提琴:模块"获得"未定义的方法`dlopen",这也是难以辨认的.)
我最初只是默认安装JDK.由于我的64位系统,这安装了64位Java.我不确定Ruby和RJB是否会与之对话,所以我安装了32位JRE.但是,错误是一样的.
是否有任何进一步的测试可以确保JVM在Ruby之外工作?
有人能告诉我运行Windows/Ruby/RJB/JVM可能需要做些什么吗?
谢谢...
我使用BitNami Rubystack和Ruby 1.9.3p448运行Windows 8.
根据testjava.jsp,Java似乎可用:
这是代码,包括我找到它的URL:
class FiddleTry
# http://devjete.wordpress.com/2011/01/31/installing-rjb-1-3-4-on-windows-7-32bit-wo-vc/
require 'rjb'
out = Rjb::import('java.lang.System').out <== Line 5 is here
out.print('Hello Rjb from ')
p out._classname
end
Run Code Online (Sandbox Code Playgroud)
以下是错误消息:
C:/Users/Richard/RubymineProjects/Utilities/fiddle_try.rb:5:in `import': can't create Java VM (RuntimeError)
from C:/Users/Richard/RubymineProjects/Utilities/fiddle_try.rb:5:in `<class:FiddleTry>'
from C:/Users/Richard/RubymineProjects/Utilities/fiddle_try.rb:1:in `<top (required)>'
from -e:1:in `load'
from -e:1:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我找不到任何关于为什么它"无法创建Java VM"的其他信息.如果我能获得更多信息,那将会非常有用.我会很感激这些信息或修复此问题.谢谢...
编辑添加有关RJB的开放式NLP要求的信息......
这是我试图运行的代码,取自Github/Open-nlp:
class OpenNlpSample
ENV['JAVA_HOME'] = "C:/Program Files/Java/jdk1.7.0_25" if ENV['JAVA_HOME'].nil?
ENV['LD_LIBRARY_PATH'] = "C:/Program Files/Java/jdk1.7.0_25/bin; C:/Program Files (x86)/Java/jre7" if ENV['LD_LIBRARY_PATH'].nil?
# …Run Code Online (Sandbox Code Playgroud)