Undefined Variable

Status
Nicht offen für weitere Antworten.
U

User

Gast
Hallo,

ich untersuche mit Hilfe der BCEL Javaklassen. Dabei bin ich jetzt auf ein Problem gestoßen.
Wenn ich eine Javadatei habe, in der innere Klassen vorkommen, übersetzt der Compiler diese und erstellt für jede innere Klasse eine extra Datei mit dem Namen Hauptklasse$InnerClass.class.

Wenn ich mein Programm nun über diese Datei drüberlaufen lassen will, gibt er mir die Fehlermeldung Undefined Variable aus. Es stört sich an dem Dollarzeichen.
Momentan rufe ich das Programm mit java -jar myprogram.jar zielklasse auf.

Hat jemand eine Idee, wie ich das Problem beheben kann? Muß ich irgendwas an dem Aufruf ändern?
 
S

stev.glasow

Gast
Hab grad folgendes getestet:
Code:
		String file_name = "Test$1.class";
		
		ClassParser cp = new ClassParser(new FileInputStream(file_name), file_name); 
		JavaClass clazz =	cp.parse(); 
		
		 Method[] mm =	clazz.getMethods();
		 for(Method m: mm){
		 	System.out.println(m);
		 	
		 }
Ausgabe: public int compareTo(Object arg1)
Es ging also.

Poste mal den Code oder mehr Infos.
 
U

User

Gast
Ich hatte folgenden Code (hier etwas gekürzt) genutzt:
Code:
public static void main(String[] argv) {

  String Src = argv[0];
  JavaClass javaClass = Repository.lookupClass(Src);
    if (null == javaClass) {
      try {
        javaClass = new ClassParser(classNameSrc).parse();
      } 
      catch (IOException e) {
        System.out.println("Could not open file " + Src + "!");
        System.exit(1);
      }
   }
}

Das Problem dürfte aber nicht dort liegen. Wenn ich den String Src fest in die Klasse schreibe, funktioniert mein Programm auch mit solchen Klassen, die ein '$' im Namen haben. Probleme gibt es nur wenn ich den Klassenname von der Kommandozeile auslese.

Probier mal deinen Code aus ohne die Variable file_name explizit anzugeben sondern übergib den Dateinamen mal als Parameter. Funktioniert das bei dir dann immernoch? Bei mir nicht.
 
U

User

Gast
Also unter Windows funktioniert es ohne Probleme, scheint also an Solaris zu liegen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Globale Variable mit Tomcat Server einrichten und konfigurieren 9

Ähnliche Java Themen

Neue Themen


Oben