This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

more .o vs .class and classloaders


Is is possible to do something like this using pure machine code, not byte code. If I compile app.java and cl.java and leave the two Hello's as class files it works. How can I make them .o or .so without changing the java code. If I have to change the java code what changes need to be made?

app.java
class app
{
public static void main(String[] args) {
try {
java.io.File file = new java.io.File("/opt/NetFuel.save/gcj/gcj-jvm/cl/v1/");
ClassLoader cl1 = new cl(file.toURL());
file = new java.io.File("/opt/NetFuel.save/gcj/gcj-jvm/cl/v2/");
ClassLoader cl2 = new cl(file.toURL());


            Class Klass1 = cl1.loadClass("Hello");
            Class Klass2 = cl2.loadClass("Hello");

String s1=(String)Klass1.getMethod("HelloString",null).invoke(null,null);
String s2=(String)Klass2.getMethod("HelloString",null).invoke(null,null);


            System.out.println("String from class 1 " + s1 + "\n");
            System.out.println("String from class 2 " + s2 + "\n");
        } catch (Exception e) {
            System.out.println("ERROR \n\t" +e);
        }
    }
}


cl.java class cl extends java.net.URLClassLoader { cl(URL path){ super (new URL[0]); try { addURL(path); } catch (Exception e) { System.out.println("Error in cl\n\t" +e ); } } }


v1/Hello.java public class Hello { public static String HelloString() { return "V1 Hello";}; }

v2/Hello.java
public class Hello
{
public static String HelloString() { return "V2 Hello";};
}


-- Steve Pribyl Steve AT NetFuel dot com Computer Infrastructure Practitioner



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]