Class: JavaClass::Classpath::JavaHomeClasspath

Inherits:
JarClasspath
  • Object
show all
Defined in:
lib/javaclass/classpath/java_home_classpath.rb

Overview

Abstraction of the Java boot CLASSPATH. May return additional classpath elements for endorsed libs.

Author

Peter Kofler

Instance Method Summary collapse

Methods inherited from JarClasspath

#==, #count, #includes?, #jar?, #load_binary, #names, #to_s

Constructor Details

#initialize(javahome) ⇒ JavaHomeClasspath

Return the list of classnames found in this javahome .



11
12
13
14
15
16
17
18
19
20
# File 'lib/javaclass/classpath/java_home_classpath.rb', line 11

def initialize(javahome)
  if FileTest.exist? rtjar=File.join(javahome, 'lib', 'rt.jar')
    super(rtjar)
  elsif FileTest.exist? rtjar=File.join(javahome, 'jre', 'lib', 'rt.jar')
    super(rtjar)
  else
    raise IOError, "rt.jar not found in java home #{javahome}"
  end
  @lib = File.dirname(rtjar)
end

Instance Method Details

#additional_classpathObject

Return list of additional classpath elements, e.g. endorsed libs found in this Java Home.



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/javaclass/classpath/java_home_classpath.rb', line 23

def additional_classpath
  list = super
  
  if FileTest.exist? ext=File.join(@lib, 'ext') 
    current = Dir.getwd
    Dir.chdir ext
    
    list += Dir['*.jar'].collect { |jar| File.join(ext, jar) }
    
    Dir.chdir current
  end
  list
end