Class: JavaBridge

Inherits:
BaseBridge show all
Defined in:
lib/libisi/bridge/java.rb

Constant Summary collapse

DEFAULT_LIBRARIES =
[
  "/usr/share/java/jcommon.jar",
  ENV["LD_LIBRARY_PATH"]
]

Class Method Summary collapse

Methods inherited from BaseBridge

#import

Class Method Details

.import(class_name, options = {}) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/libisi/bridge/java.rb', line 48

def self.import(class_name, options = {})
  @classes ||= []

  import_command = "Rjb::import('#{class_name}')"    

  new_class_name = "#{class_name.split(".")[-1]}"
  if options[:prefix]
    new_class_name = "#{options[:prefix]}#{new_class_name}"
  end

  if @classes.include?(new_class_name)
    #      $log.warn("#{new_class_name} already imported") 
    return eval("#{new_class_name}")
  end

  eval_string = "#{new_class_name} = #{import_command}"
  
  $log.info("Loading java class by #{eval_string.inspect}")
  res = eval(eval_string)
  @classes << new_class_name
  res
end

.load(jar_files) ⇒ Object



43
44
45
46
# File 'lib/libisi/bridge/java.rb', line 43

def self.load(jar_files)
  jar_files = [jar_files] if jar_files.class == String
  Rjb::load(classpath = (DEFAULT_LIBRARIES + jar_files).join(":"), jvmargs=[])
end