Class JavaClass::Classpath::JavaHomeClasspath
In: lib/javaclass/classpath/java_home_classpath.rb
Parent: JarClasspath

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

Methods

Constants

RT_JAR = 'rt.jar'

Public Class methods

Create a classpath from this javahome directory.

[Source]

# 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

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

[Source]

# 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

[Validate]