首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将JRUBY_OPTS传递给JRuby war/jar?

如何将JRUBY_OPTS传递给JRuby war/jar?
EN

Stack Overflow用户
提问于 2015-08-08 00:17:43
回答 1查看 478关注 0票数 0

我不知道如何在Tomcat中分析JRuby On Rails应用程序。实际上,当ruby代码不是由jruby命令运行,而是从java运行时,我不知道如何将--profile选项传递给JRuby。

要调查我创建的文件的问题:

代码语言:javascript
复制
$ cat bin/profile_puts.rb

require 'yaml'
puts ENV['JRUBY_OPTS']

require 'jruby/profiler'
def profile(&block)
  JRuby::Profiler::GraphProfilePrinter.new(JRuby::Profiler.profile(&block)).printProfile(STDOUT)
end
profile do
  puts "hi"
end

范围

代码语言:javascript
复制
$ jruby --profile.api bin/profile_puts.rb

并得到了正确的分析器输出。

然后我把它和with打包在一起

代码语言:javascript
复制
$ gem install warbler
$ warble jar    
$ JRUBY_OPTS=--profile.api java -jar profile.jar JarMain

得到一个错误:

代码语言:javascript
复制
--profile.api
RuntimeError: Profiling not enabled in runtime

正如您所看到的,JRUBY_OPTS环境变量进入了进程,但对JRuby没有影响。

如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2015-09-02 22:13:30

代码语言:javascript
复制
java -Djruby.cli.profiling.mode=API -jar profile.jar

我应该澄清这一点,JRUBY_OPTS要么由jruby shell脚本处理,要么由命令行界面处理,当使用warbler时两者都不可用,所以您需要查找相应的属性并像这样传递它。上面的一个启用了API分析。

来自jruby --属性

代码语言:javascript
复制
# Enable instrumented profiling modes.
# Options: [OFF, API, FLAT, GRAPH, HTML, JSON, SERVICE], Default: OFF.

#cli.profiling.mode=OFF
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31882357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档