diff --git a/jode/jode/bytecode/package.html b/jode/jode/bytecode/package.html new file mode 100644 index 0000000..1ae5b55 --- /dev/null +++ b/jode/jode/bytecode/package.html @@ -0,0 +1,85 @@ + + + + + JODE Bytecode Package + + + +Provides easy access to class files and their contents. To use it you +create a ClassPath object giving it the locations where +it should search for classes. Then you can ask this object for a +class and get a ClassInfo object. As third step you can actually load +the class.

+ +Please notify me if you want to use this package. I will inform you +about updates, help you with problems, etc. WARNING: This +package may change in the future in incompatible ways. Ask me for +more information.

+ +BIG FAT WARNING: Some of the things documented here aren't even +implemented. Some of this is only vapor ware. But feel free to +comment on this and point me to design errors!

+ +Here is a short example, how you can use this package, see the +documentation of the classes for more details. +
+ ...
+ ClassPath path = new ClassPath("/usr/lib/java/lib/classes.zip");
+ ClassInfo clazz = path.getClassInfo("java.util.Hashtable");
+
+ try {
+   clazz.load(ClassInfo.DECLARATIONS);
+ } catch (ClassFormatException ex) {
+   System.err.println("Something is wrong with HashTable, giving up!");
+   return;
+ } catch (IOException ex) {
+   System.err.println("Can't load HashTable, giving up!");
+   return;
+ }
+
+ MethodInfo[] methods = clazz.getMethods();
+ for (int i=0; i< methods.length; i++) {
+     String type = methods[i].getType();
+     if (TypeSignature.getReturnType(type) == TypeSignature.INT_TYPE)
+         System.out.println("Found integer method: "+method.getName());
+ }
+ ...
+
+ +You can also use this package to create and write new classes: +
+ ...
+ ClassPath path = new ClassPath("/usr/lib/java/lib/classes.zip");
+ ClassInfo clazz = path.getClassInfo("my.new.Class");
+ clazz.setModifiers(Modifiers.PUBLIC);
+ clazz.setSourceFile("Class.pl");
+ clazz.set...
+ clazz.write(zipOutputStream);
+ ...
+
+ +
+
Jochen Hoenicke
+ + +Last modified: Mon Jun 26 09:46:24 MET DST 2000 + + +