/
Forside
/
Teknologi
/
Udvikling
/
Java
/
Nyhedsindlæg
Login
Brugernavn
*
Kodeord
*
Husk mig
Brugerservice
Kom godt i gang
Bliv medlem
Seneste indlæg
Stil et spørgsmål
Skriv et tip
Pointsystemet
Kontakt Kandu.dk
Emnevisning
Kategorier
Alfabetisk
Karriere
Interesser
Teknologi
Reklame
Top 10 brugere
Java
#
Navn
Point
1
molokyle
3688
2
Klaudi
855
3
strarup
740
4
Forvirret
660
5
gøgeungen
500
6
Teil
373
7
Stouenberg
360
8
vnc
360
9
pmbruun
341
10
mccracken
320
classLoader kan ikke loade while-løkker !!~
Fra :
Nikolaj
Dato :
15-12-00 15:08
Jeg har problemer med at loade en klasse ind fra en fil, men kun hvis den
indeholder en while-løkke
Prøv at kigge på følgende kode:
public static void main(String[] args) {
try {
// en instans af min egen klasse ClassFileLoader oprettes
// for at få adgang til den private metode defineClass
ClassFileLoader cfl = new ClassFileLoader();
Class c = cfl.loadAndDefineClass();
// printing the name of the class
System.out.println(c);
} catch (Throwable t) {
System.out.println(t);
}
}
loadAndDefineClass ser sådan ud. Det er metoden define class, der giver en
ClassFormatError.
public Class loadAndDefineClass() throws Exception {
// loading the classfile into a byte[]
Vector v = new Vector();
File f = new File("D:/TestClass.class");
FileInputStream is = new FileInputStream(f);
byte b = (byte) is.read();
while (b != -1) {
v.add(new Byte(b));
b = (byte) is.read();
}
byte[] bytes = new byte[v.size()];
for (int i = 0; i < v.size(); i++) {
bytes[i] = ((Byte) v.elementAt(i)).byteValue();
}
// trying to define the class (converting the byte[] into a
Class-object)
Class c = defineClass("TestClass", bytes, 0, bytes.length, null);
return c;
}
Klassen jeg prøver at loade ser sådan ud:
public class TestClass {
public void method() {
System.out.println("inside method");
double d = Math.random();
while(d<.9) {
System.out.println("d");
d = Math.random();
}
System.out.println("end of method");
}
}
Klassen compiler fint.
Hvis jeg udkommenterer while-løkken kan jeg loade og define mit
Class-objekt. Hvis while-løkken er der får jeg en ClassFormatError, der
angiver at byte[]'et ikke indeholder data svarende til en klasse..
HVORFOR????
Håber du kan hjælpe mig.
Nik
Søg
Alle emner
Teknologi
Udvikling
Java
Indstillinger
Spørgsmål
Tips
Usenet
Reklame
Statistik
Spørgsmål :
177821
Tips :
31980
Nyheder :
719565
Indlæg :
6410982
Brugere :
218912
Månedens bedste
Årets bedste
Sidste års bedste
Copyright © 2000-2026 kandu.dk. Alle rettigheder forbeholdes.