class JavaClass::Classpath::JavaHomeClasspath
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
Constants
- RT_JAR
Public Class Methods
new(javahome)
click to toggle source
Create a classpath from this javahome directory.
Calls superclass method
JavaClass::Classpath::JarClasspath::new
# 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
Public Instance Methods
additional_classpath()
click to toggle source
Return list of additional classpath elements, e.g. endorsed libs found in this Java Home.
Calls superclass method
JavaClass::Classpath::JarClasspath#additional_classpath
# 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
Private Instance Methods
exist?(file)
click to toggle source
# File lib/javaclass/classpath/java_home_classpath.rb, line 44 def exist?(file) FileTest.exist?(file) && FileTest.file?(file) end