2011-11-15 102 views
1

我只是使用JRuby開始,我創建一個小的測試文件:java_import已經初始化常數

require 'java' 
java_import java.io.File 

f = File.new ARGV[0] 

當我運行該程序,如下所示:jruby test.rb file.txt 我得到以下警告:

/Library/Frameworks/JRuby.framework/Versions/1.6.5/lib/ruby/site_ruby/shared/builtin/javasupport/core_ext/object.rb:99 warning: already initialized constant File

f這個類其實就是java File類,但我仍然得到警告,有什麼幫助?

我發現這是由在尋找object.rb涉及以下JRuby的票: http://jira.codehaus.org/browse/JRUBY-3453

+0

任何理由要明確使用的Java文件類? –

回答

7

似乎是一個合理的警告我,因爲紅寶石已經有一個File類(即常量「文件」已經初始化爲引用Ruby文件類)。

我自己,我可能會跳過導入,只是做

require 'java' 
f = java.io.File.new ARGV[0] 

應該工作,將消除名稱衝突。

你也可以做

require 'java' 
java_file = java.io.File 
f = java_file.new ARGV[0] 

module JavaIO 
    include_package "java.io" 
end 

f = JavaIO::File.new ARGV[0]