.class-File mit Reflection auslesen

Basti91

Mitglied
Hallo,
schonmal vorweg, die ähnlichen Threads zu diesem Thema hier im Forum konnten mir nicht weiterhelfen.

Ich habe eine .class-Datei
Code:
secretClass.class
, von dieser Klasse/Objekt weiss ich lediglich durch einen kurzen Blick per Texteditor, dass die Klasse einem Package
Code:
secrets
angehört, d.h. der volle Name der Klasse ist
Code:
secrets.SecretClass
.

In meinem Java-Projekt indem ich mit der Reflection API die Eigenschaften der Klasse auslesen möchte habe ich nun also zunächst einen Ordner
Code:
secrets
(auf oberster Ebene) erstellt und dort die .class-Datei hineinkopiert.

Anschließend habe ich über Rechtsklich auf das Projekt --> Properties --> Java Buld Path --> Libraries --> Add Class Folder, diesen Ornder dem Classpath hinzugefügt und anschließend das Projekt refreshed.

In einer Testklasse habe ich nun versucht mit
Code:
Class.forName("secretClass")
ein Class-Objekt der .class-Datei zu erzeugen jedoch erhalte ich den Fehler:
Code:
java.lang.NoClassDefFoundError: Safe (wrong name: secrets/secretClass)

Kann mir hier jemand weiterhelfen?
 

kaoZ

Top Contributor
Ich denke er meint du hast hier selbst schon 2 verschiedene bennenungen stehen

einmal
Code:
secrets.SecretClass
UpperCamelCase

und später schreibst du dann

Code:
Class.forName("secretClass")
lowerCamelCase

Klar das er dann die Klasse nicht findet, da Java Case Sensitive ist.
 
Zuletzt bearbeitet:

Basti91

Mitglied
Die Namen in meinem Post wurden zur Veranschaulichung abgeändert, im Original besteht der Fehler nicht.
Ich ändere den Eingangspost nun ab.
 

anti-held

Bekanntes Mitglied
Du brauchst in deinem Source Folder, den du zum Pfad hinzugefügt hast noch einen Ordner, der das Paket secret darstellt.
Erst in diesem Ordner darf die .class Datei liegen.
 

Natac

Bekanntes Mitglied
Offtopic: Ich glaube nur eine bestimmte Zeit nach Erstellung.

Ich bin mir nicht sicher, aber müsste man bei Class.forName nicht den kompletten Klassennamen angeben? Also:
Java:
Class.forName("secret.SecretClass");
 

kaoZ

Top Contributor
Wie Natac mir zuvor gekommen ist , versuch mal anhand des Qualifizierten namens über Class.forName() die Klasse zu laden.

Ich hab auf die Schnelle mal was von der Insel gefunden
Führt die JVM diese Anweisung aus, versucht sie den Bytecode von MeineKlasse zu laden. Ist der Bytecode für MeineKlasse nach dem Compilieren entfernt worden, löst die JVM durch den nicht geglückten Ladeversuch den NoClassDefFoundError aus. Auch tritt der Fehler auf, wenn beim Laden des Bytecodes die Klasse MeineKlasse zwar gefunden wurde, aber MeineKlasse einen statischen Initialisierungsblock besitzt, der wiederum eine Klasse referenziert, für die keine Klassendatei vorhanden ist.

besitzt die Klasse SecretClass einen statischen Initialisierungsblock, bzw. trifft der Fall bei dir ggf. zu ?

Ich hab jetzt mal ein bisschen rumprobiert und das hier funktioniert reibungslos :

Java:
public class Foo{

	public Foo() throws ClassNotFoundException, InstantiationException, IllegalAccessException {
	  
		Class<?> c = Class.forName("de.kaoz.test.Enemy");  // voll Qualifizierter Name = I.O
		
		Enemy e = (Enemy) c.newInstance();
		
		e.attack("hit", new Player());
    }
	
	public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
	    new Foo();
    }
}

Ausgabe :

Damage taken from enemy : 30
You died ! Try Again.

gebe ich allerdings nur den Klassennamen an wird sofort eine KlassNotFoundException geworfen, und das obwohl sich die klassen im selben Package befinden !
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
S Class File Editor gibt beim Start der Programms die Fehlermeldung Source not found aus Java Basics - Anfänger-Themen 1
M Java Class File lässt sich nicht ausführen Java Basics - Anfänger-Themen 3
H Bad class file in *.jar Java Basics - Anfänger-Themen 19
E Executable jar-file findet class nicht Java Basics - Anfänger-Themen 12
N Jar-File soll externe class-Datei benutzen Java Basics - Anfänger-Themen 8
A Compile the Source File into a .class File Java Basics - Anfänger-Themen 3
G Class File "lesen" Java Basics - Anfänger-Themen 4
M class-File anschauen möglich? Java Basics - Anfänger-Themen 8
B bad class file Java Basics - Anfänger-Themen 2
N Class-Objekt aus File-Objekt erzeugen? Java Basics - Anfänger-Themen 14
G "bad class file" Problem Java Basics - Anfänger-Themen 13
S methode in class file ansprechen? Java Basics - Anfänger-Themen 6
T IntelliJ / SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". Java Basics - Anfänger-Themen 4
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
C Was tun wenn .class erwartet wird ? Java Basics - Anfänger-Themen 6
M "Class<T> clazz" im Constructor - auch für int möglich? Java Basics - Anfänger-Themen 7
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
123456789sssssaaaa Java Wrapper Class Java Basics - Anfänger-Themen 13
FHEFHJHFJH error: class names, 'summe_bsp', are only accepted if annotation processing is explicitly requested Java Basics - Anfänger-Themen 3
N Variabel in eine class mit "extends JLabel" übertragen Java Basics - Anfänger-Themen 2
J Methode als Class anlegen Java Basics - Anfänger-Themen 7
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
G Could not initialize class “NoClassDefFoundError" Java Basics - Anfänger-Themen 2
Mr_Kleeblatt Operatoren if (arri[i] != "test.java"&& arri[i] != "test.class") Java Basics - Anfänger-Themen 3
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
J Klassen .class Datei öffnen Java Basics - Anfänger-Themen 31
C "HelloWorld" - Dateien erstellt, aber ist es eine class-Datei? Java Basics - Anfänger-Themen 2
O Verständniss Problem bei abstract class Java Basics - Anfänger-Themen 7
H .class Datei wird nicht ausgeführt Java Basics - Anfänger-Themen 2
H .jar unterschied .class Java Basics - Anfänger-Themen 3
J class version 52 und 56 Java Basics - Anfänger-Themen 6
L Fehler bei der AUsführung der .class Datei Java Basics - Anfänger-Themen 23
A Class not found - Jar liegt am classpath Java Basics - Anfänger-Themen 2
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
J Methoden Methoden einer public class AutoCompleteTextField verwenden Java Basics - Anfänger-Themen 14
R HTTP-Links in Java Class finden Java Basics - Anfänger-Themen 3
D jsoup get class name mit leerzeichen Java Basics - Anfänger-Themen 7
D doc.seect jsouo bestimmtes class element finden Java Basics - Anfänger-Themen 1
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
N Fehlende .class Datei Java Basics - Anfänger-Themen 4
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
C Was macht `public class ClassName<T extends Comparable<T>>`? Java Basics - Anfänger-Themen 14
W Externe class in Eclipse importieren Java Basics - Anfänger-Themen 0
X Variablen Problem bei Aufteilung in verschiedene Class-Files Java Basics - Anfänger-Themen 4
Javafan01 Dateiname und Public class Java Basics - Anfänger-Themen 4
S Klassen Class mit Funktionen importieren Java Basics - Anfänger-Themen 1
L jar, class, java und wieder zurück Java Basics - Anfänger-Themen 8
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
B Classpath Class lässt sich nicht öffnen Java Basics - Anfänger-Themen 3
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
temi Verständnisproblem Class.forName() Java Basics - Anfänger-Themen 3
S setText aus anderer class heraus Java Basics - Anfänger-Themen 6
L Classpath Zwei Bibliotheken enthalten gleiche .class Datei Java Basics - Anfänger-Themen 6
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
D Interface Amazon Skill Kit, Interface but method in other class? Java Basics - Anfänger-Themen 3
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
wilmaed protected class Java Basics - Anfänger-Themen 0
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
N class in class Java Basics - Anfänger-Themen 13
B Linux - Error: Could not find or load main class application.Main Java Basics - Anfänger-Themen 28
V Was bewirkt das Schlüsselwort extends in Verbindung mit class bzw. public class ? Java Basics - Anfänger-Themen 2
Azazel Ist die abstract class das selbe wie ein interface ? Java Basics - Anfänger-Themen 33
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
P could not find main class obwohl da Java Basics - Anfänger-Themen 17
UnityFriday method getPrevious in class List<ContentType> cannot be applied to given types Java Basics - Anfänger-Themen 29
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
D Compiler-Fehler error: .class expected Java Basics - Anfänger-Themen 2
S Dataflow von Start bis die SystemProperties class Java Basics - Anfänger-Themen 1
Detox Class Datei erzeugen nicht möglich über cmd Java Basics - Anfänger-Themen 1
M Scanner class Java Basics - Anfänger-Themen 6
A attach source: Zusammenhang zwischen JAR und .class/.java Dateien? Java Basics - Anfänger-Themen 2
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
C Klassen Class Files nachladen (mehrer .jar Dateien) Java Basics - Anfänger-Themen 2
P Compiler-Fehler Could not load or find main class fehler Java Basics - Anfänger-Themen 15
J Gestaltung der GUI.class Java Basics - Anfänger-Themen 1
P Compiler-Fehler could not find or load main class Java Basics - Anfänger-Themen 5
Z Gleiches Verzeichnis für class und java unter Windows Muss? Java Basics - Anfänger-Themen 11
S Class Dateien decompilieren Java Basics - Anfänger-Themen 4
D neue public static class variablen in array speichern? Java Basics - Anfänger-Themen 6
T Wie vergleiche ich die Jahre aus der while Schleife die in ( public class) fuer cbx geschrieben sind Java Basics - Anfänger-Themen 5
S Vererbung Fehlermeldung: the hierarchy of the type "class name" is inconsistent Java Basics - Anfänger-Themen 10
J Erste Schritte .class datei in meine form inkludieren Java Basics - Anfänger-Themen 3
O Objekt weitergeben Meth Class NullPointerException Java Basics - Anfänger-Themen 2
M Class Datein aus einen Unterordner verwenden Java Basics - Anfänger-Themen 2
C class in main aufrufen (SWT Oberfläche) Java Basics - Anfänger-Themen 5
P Compiler-Fehler .java Dateien kompilieren und .class Dateien zur .jar Java Basics - Anfänger-Themen 4
D error: Class names, >>>HILFE, anfänger<<< Java Basics - Anfänger-Themen 4
M Class nach Namensänderung nicht mehr vorhanden Java Basics - Anfänger-Themen 6
P .class 2 .exe ? Java Basics - Anfänger-Themen 5
N Compiler-Fehler HundTestlauf class Fehler Java Basics - Anfänger-Themen 4
3 OOP static class in einer Klasse Java Basics - Anfänger-Themen 6
H Umgebungsvariable In DOS-Box läuft die fehlerfreie Class-Datei nicht. Java Basics - Anfänger-Themen 5
J Compiler-Fehler bootstrap class path not set in conjunction with -source 1.6 Java Basics - Anfänger-Themen 2
J Interface compatible to a class Java Basics - Anfänger-Themen 7
Phil42 "Local variable i is accessed from within inner class" Java Basics - Anfänger-Themen 3
F .class expected Java Basics - Anfänger-Themen 3
S Erste Schritte Ausführen einer Class Datei Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben