2013-08-21 4 views
0

간단한 루비 샘플에서 .JAR을 만들려고합니다. MRI와 jRuby에서 문제없이 이것을 실행할 수 있지만, JAR 파일을 실행할 때 프로젝트에 오류가 발생하면 오류가 발생합니다.YAML 의존성을 지닌 간단한 루비 샘플을 뒤틀어 서

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

configuration.yml 파일이 있기 때문에이 프로젝트 폴더에없는이 YML 파일에 있도록, 최적의 경로가 항아리에 상대적 것 JAR에 포함하지 않아야 그래서 편집 할 필요가있다 JAR 파일과 같은 폴더. 그럼 내가 어떻게 할 수 있니?

내 빈 \의 sample.rb

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

내 C : \ 테스트 \ 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을 사용합니다.

답변

0

웹에서 몇 가지 해결책으로 java를 사용하지 않고 그것을 알아 냈습니다 (그러나 놀랍지는 않음).

require 'yaml' 

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