Module: JavaClass
- Defined in:
- lib/javaclass.rb,
lib/javaclass/java_name.rb,
lib/javaclass/classlist/list.rb,
lib/javaclass/classfile/references.rb,
lib/javaclass/classfile/class_magic.rb,
lib/javaclass/classlist/class_entry.rb,
lib/javaclass/classfile/access_flags.rb,
lib/javaclass/classlist/jar_searcher.rb,
lib/javaclass/classfile/class_version.rb,
lib/javaclass/classfile/constant_pool.rb,
lib/javaclass/classlist/package_entry.rb,
lib/javaclass/classpath/jar_classpath.rb,
lib/javaclass/classfile/constants/base.rb,
lib/javaclass/classfile/constants/value.rb,
lib/javaclass/classpath/folder_classpath.rb,
lib/javaclass/classfile/java_class_header.rb,
lib/javaclass/classpath/composite_classpath.rb,
lib/javaclass/classpath/java_home_classpath.rb,
lib/javaclass/classfile/constants/double_reference.rb,
lib/javaclass/classfile/constants/single_reference.rb
Overview
Main entry point for class file parsing.
- Author
-
Peter Kofler
Defined Under Namespace
Modules: ClassFile, ClassList, Classpath Classes: JavaName
Class Method Summary collapse
-
.classpath(path) ⇒ Object
Parse the given path variable path and return a chain of class path elements.
-
.disassemble(data) ⇒ Object
Read and disassemble the given class inside data (byte data).
-
.environment_classpath ⇒ Object
Parse and scan the system classpath.
-
.full_classpath(javahome, path = '') ⇒ Object
Parse the given path variable path and return a chain of class path elements together with javahome if any.
-
.load_cp(classname, classpath) ⇒ Object
Read and disassemble the given class classname from classpath .
-
.load_fs(filename) ⇒ Object
Read and disassemble the given class from filename (full file name).
- .parse(filename) ⇒ Object
Class Method Details
.classpath(path) ⇒ Object
Parse the given path variable path and return a chain of class path elements.
30 31 32 |
# File 'lib/javaclass.rb', line 30 def self.classpath(path) full_classpath(nil, path) end |
.disassemble(data) ⇒ Object
Read and disassemble the given class inside data (byte data).
25 26 27 |
# File 'lib/javaclass.rb', line 25 def self.disassemble(data) ClassFile::JavaClassHeader.new(data) end |
.environment_classpath ⇒ Object
Parse and scan the system classpath. Needs JAVA_HOME
set. Uses environment CLASSPATH
if set.
35 36 37 |
# File 'lib/javaclass.rb', line 35 def self.environment_classpath full_classpath(ENV['JAVA_HOME'], ENV['CLASSPATH']) end |
.full_classpath(javahome, path = '') ⇒ Object
Parse the given path variable path and return a chain of class path elements together with javahome if any.
40 41 42 43 44 45 |
# File 'lib/javaclass.rb', line 40 def self.full_classpath(javahome, path='') cp = Classpath::CompositeClasspath.new cp.add_element(Classpath::JavaHomeClasspath.new(javahome)) if javahome path.split(File::PATH_SEPARATOR).each { |cpe| cp.add_file_name(cpe) } if path cp end |
.load_cp(classname, classpath) ⇒ Object
Read and disassemble the given class classname from classpath .
20 21 22 |
# File 'lib/javaclass.rb', line 20 def self.load_cp(classname, classpath) disassemble(classpath.load_binary(classname)) end |
.load_fs(filename) ⇒ Object
Read and disassemble the given class from filename (full file name).
10 11 12 |
# File 'lib/javaclass.rb', line 10 def self.load_fs(filename) disassemble(File.open(filename, 'rb') { |io| io.read } ) end |
.parse(filename) ⇒ Object
14 15 16 17 |
# File 'lib/javaclass.rb', line 14 def self.parse(filename) warn 'Deprecated method JavaClass::parse will be removed in next release. Use method load_fs instead.' load_fs(filename) end |