Class: JavaClass::Classpath::JavaHomeClasspath
- Inherits:
-
JarClasspath
- Object
- FileClasspath
- JarClasspath
- JavaClass::Classpath::JavaHomeClasspath
- Defined in:
- lib/javaclass/classpath/java_home_classpath.rb
Overview
Abstraction of the Java boot CLASSPATH. May return additional classpath elements for endorsed libs. This is a leaf in the classpath tree.
- Author
-
Peter Kofler
Constant Summary collapse
- RT_JAR =
'rt.jar'
Instance Method Summary collapse
-
#additional_classpath ⇒ Object
Return list of additional classpath elements, e.g.
-
#initialize(javahome) ⇒ JavaHomeClasspath
constructor
Create a classpath from this javahome directory.
Methods inherited from JarClasspath
#count, #includes?, #jar?, #load_binary, #names, valid_location?
Methods inherited from FileClasspath
#==, #elements, #jar?, #to_key, #to_s
Constructor Details
#initialize(javahome) ⇒ JavaHomeClasspath
Create a classpath from this javahome directory.
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/javaclass/classpath/java_home_classpath.rb', line 14 def initialize(javahome) if exist?(rtjar=File.join(javahome, 'lib', RT_JAR)) super(rtjar) elsif exist?(rtjar=File.join(javahome, 'jre', 'lib', RT_JAR)) super(rtjar) elsif exist?(rtjar=File.join(javahome, 'lib', 'classes.zip')) # Java 1.1 home with lib/classes.zip super(rtjar) else raise IOError, "#{RT_JAR} not found in java home #{javahome}" end @lib = File.dirname(rtjar) end |
Instance Method Details
#additional_classpath ⇒ Object
Return list of additional classpath elements, e.g. endorsed libs found in this Java Home.
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/javaclass/classpath/java_home_classpath.rb', line 28 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 |