【问题标题】:warbling a simple ruby sample with YAML dependency颤抖一个简单的带有 YAML 依赖的 ruby​​ 示例
【发布时间】:2013-08-22 00:12:52
【问题描述】:

我尝试从一个简单的 ruby​​ 样本制作一个 .JAR。在 MRI 和 jRuby 中,我可以毫无问题地运行它,但是当我尝试运行项目时,运行 JAR 文件时出现错误。

Errno::ENOENT: No such file or directory - configuration.yml

configuration.yml 文件不在项目文件夹中,因为它需要可编辑,因此不应包含在 JAR 中,最佳路径是相对于 jar,以便 YML 文件与JAR 文件。那我该怎么做呢?

我的 bin\sample.rb

require 'yaml'
@conf = YAML::load_file "c:/test/configuration.yml"
#@conf = YAML::load_file "c:\\test\\configuration.yml"
puts @conf['username']

我的 c:\test\configuration.yml

username: test

我的 .gemspec 文件

Gem::Specification.new do |spec|
  spec.require_paths << '.'
}

我的配置\warble.rb

Warbler::Config.new do |config|
  config.jar_name = "sample"
end

我用“warble jar -trace”发出声音,没有错误 我使用 jruby-1.7.4 和 warbler-1.3.8。

【问题讨论】:

    标签: configuration jar jruby warbler


    【解决方案1】:

    在不使用 java 的情况下解决了这个问题,正如网络上的一些解决方案所建议的那样(但不适用于 warble)。

    require 'yaml'
    
    scriptpath = __FILE__[/(.*)\/.+\.jar!/]
    yamlpath   = "#{$1[6..-1]}/configuration.yml"
    @conf      = YAML::load_file(yamlpath)
    puts @conf['username']
    # => test
    

    【讨论】:

      猜你喜欢
      • 2012-02-13
      • 1970-01-01
      • 2010-11-11
      • 1970-01-01
      • 1970-01-01
      • 2018-10-01
      • 2015-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多