This one is a follow-up to this post, finding a class in jars under a certain folder. But this time, it is obviously in Ruby:
require ’java’
def scanDir(className, dirname=’C:’)
begin
Dir.foreach(dirname) do |filename|
next if (filename == "." or filename == "..")
if File.directory?(filename)
scanDir className, filename
elsif File.fnmatch("**.jar", filename)
scanJar(className, File.join(dirname, filename))
end
end
rescue SystemCallError
$stderr.print "IO failed: " + $!
end
end
def scanJar(className, jarfile)
entries = java.util.jar.JarFile.new(jarfile).entries
entries.each do |entry|
if entry.getName().to_s.index(className) != nil
puts "#{jarfile}: #{entry}\
"
end
end
end
if ARGV.size == 2
scanDir ARGV[0], ARGV[1]
else
puts "Usage: jruby search_jar.rb <class_name> <directory>"
end
You then call it as follows:
jruby search_jar.rb MyNiceStub C:\\application_server\\lib
Edit: Ideally, something like Rake’s FileList would make finding the jar in subfolders a trivial task…