Loading Libraries
steve
steve@netfuel.com
Fri Jun 13 19:19:00 GMT 2003
Is System.load(String) broken? If it is I will investigate further.
I recall that this used to work in some version but can't verify that.
I have also tried this using SharedLibLoader it also fails.
Linking Hello.o does work, but that is not what I need.
If someone can confirm that this is indead broken I will bury my head in
the code to find out why and try to actually contribute.
Thanks guys
[steve@pascal cl]$ gcj -g
--classpath=/opt/gcc-3.4/share/java/libgcj.jar:.:./v1 app.java -o app
--main=app
[steve@pascal cl]$ ./app
ERROR
java.lang.ClassNotFoundException: Hello not found in [file:./,
core:/]
cat app.java
class app
{
public static void main(String[] args) {
try {
System.load("/opt/NetFuel.save/gcj/gcj-jvm/cl/v1/libHello.so");
Class Klass1 = Class.forName("Hello");
String
s1=(String)Klass1.getMethod("HelloString",null).invoke(null,null);
System.out.println("String from class 1 " + s1 + "\n");
} catch (Exception e) {
System.out.println("ERROR \n\t" +e);
}
}
}
cat v1/Hello.java
public class Hello
{
public static String HelloString() { return "V1 Hello";};
}
[steve@pascal cl]$ nm v1/libHello.so
00001934 A __bss_start
000017c4 d _CD_Hello
000017cc d _CT_Hello
000018ac A _DYNAMIC
00001934 A _edata
00001934 A _end
U __gcj_personality_v0
00001928 A _GLOBAL_OFFSET_TABLE_
U _Jv_InitClass
00001760 d _MT_Hello
000006fe r _Utf1
0000070e r _Utf2
00000728 r _Utf3
00000734 r _Utf4
0000073c r _Utf5
0000074a r _Utf6
U _ZN4java4lang6Object5cloneEv
U _ZN4java4lang6Object6class$E
U _ZN4java4lang6Object6equalsEPS1_
U _ZN4java4lang6Object8finalizeEv
U _ZN4java4lang6Object8hashCodeEv
U _ZN4java4lang6Object8toStringEv
U _ZN4java4lang6ObjectC1Ev
000006d0 T _ZN5Hello11HelloStringEv
000017e0 D _ZN5Hello6class$E
000006ea T _ZN5HelloC1Ev
U _ZTVN4java4lang5ClassE
000017a0 D _ZTVN5HelloE
[steve@pascal cl]$ gcj -v
Reading specs from /opt/gcc-3.4/lib/gcc-lib/i686-pc-linux-gnu/3.4/specs
Reading specs from
/opt/gcc-3.4/lib/gcc-lib/i686-pc-linux-gnu/3.4/../../../libgcj.spec
rename spec lib to liborig
Configured with: ../configure --prefix /opt/gcc-3.4
Thread model: posix
gcc version 3.4 20030612 (experimental)
--
Steve Pribyl
Steve AT NetFuel dot com
Computer Infrastructure Practitioner
More information about the Java
mailing list