.class laden

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich habe auf meiner Platte eine Datei .class liegen.

Diese möchte ich nun gerne laden und verwenden. Vorgestellt habe ich mir sowas in der Art:

MeineKlasse class = c:\\bla blubb

Sowas geht bestimmt aber wie?

In den classpath tun will ich sie so nicht. Ich will die aus dem Programm heraus laden können.

Das Ding liegt bei mir auf der Platte und ich möchte es also laden und dann auf eine andere Klasse casten.

Könnt ihr mir bitte helfen? Am besten mit einem kleinen code beispiel. Ich blicke da gar nicht durch, daher wäre ich über etwas code sehr dankbar.

Danke.
 
G

Gast

Gast
*up*

Das ganze ich mir schon wichtig, ich bin auch wirklich auf eure Hilfe angewiesen.

Ahh, noch so nebenbei ich nutze 1.4 :eek:
 
G

Guest

Gast
Code:
File file = new File("c:\\class\\");
    
    try {
        // Convert File to a URL
        URL url = file.toURL();          // file:/c:/class/
        URL[] urls = new URL[]{url};
    
        // Create a new class loader with the directory
        ClassLoader loader = new URLClassLoader(urls);
    
        // Load in the class; Class.childclass should be located in
        // the directory file:/c:/class/user/information
        Class cls = loader.loadClass("user.informatin.Class");
    } catch (MalformedURLException e) {
    } catch (ClassNotFoundException e) {
    }

Na gut, ich habe das .class aber gespeichert da war es eben die Klasse Mapping. Die enthält ja auch methoden usw.

Wie kann ich nun mit dieser klasse arbeiten als wäre sie wirklich da. also auch methoden ansprechen usw???
 
G

Guest

Gast
Dazu sollte ich evtl sagen, dass ich eine klasse names Mapping bereits habe...die könnte man also irgendwie überschreiben oder so...blos wie weiß ich nicht wirklich. :(
 

Ebenius

Top Contributor
Hm. Das ergibt alles nicht so richtig Sinn.

Was macht denn Deine Klasse Mapping? Und was macht die auf dem Filesystem befindliche Klasse Mapping? Haben die irgendwas miteinander zu tun? Und was soll Dein Programm denn überhaupt machen?

Ebenius
 
G

Guest

Gast
Kleines Beispiel:
Code:
public class Test {
	public void sayHello(){
		System.out.println("Hello everybody");
	}
}

Code:
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;


public class ClassLader {

	public static void main(String[] args) {

		File file = new File("c:\\Test.class");

		try {
			// Convert File to a URL
			URL url = file.toURL();          
			URL[] urls = new URL[]{url};

			ClassLoader loader = new URLClassLoader(urls);

			Class cls = loader.loadClass("Test");
			Test t = (Test)cls.newInstance();
			
			// rufe methode der geladenen klasse auf
			t.sayHello();
			
			
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch(IllegalAccessException e){
			e.printStackTrace();
		}catch(InstantiationException e){
			e.printStackTrace();
		}
	}
}
 
G

Guest

Gast
Ahhh ja genau so wollte ich das. Werde ich morgen ausprobieren.
 
G

Gast

Gast
Hmm, ich bekomme irgendwie eine Class not found exception...

Ich habe es aber genau so wie oben...
 
G

Guest

Gast
Wenn ich mir die URL ausgeben lasse dann bekomme ich ein /C:/test.class

Ist das erste "/" normal?

Btw. ich benutze 1.4 liegt das evtl. damit zusammen??
 
G

Gast

Gast
Dann probiers doch einfach mal mit plattformunabhängigen Pfadangaben:
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/System.html#getProperties()

Also in der Art:

String pfad = "c:"+System.getProperty("file.separator")+"Test.class";


P.S.: Klassennamen sollten groß geschrieben werden.
 
G

Guest

Gast
Code:
try {
       // Convert File to a URL     
       URL aURL = new URL("file:/C:/test_1.class");
       
       URL[] urls = new URL[]{aURL};

       ClassLoader loader = new URLClassLoader(urls);
       
       Class cls = loader.loadClass("test_1");
       
       Mapping map = (Mapping)cls.newInstance();
              
               
     } catch (MalformedURLException e) {
        e.printStackTrace();
     } catch (ClassNotFoundException e) {
        e.printStackTrace();
     } catch(IllegalAccessException e){
        e.printStackTrace();
     }catch(InstantiationException e){
        e.printStackTrace();
     }

Das geht auch nicht! Seltsamerweise kann ich egal wie ich den Pfad angebe, die klasse nicht laden.. :\

Gibt es da noch irgendwas was ich beachten muss oder fehlt noch was? Oder gibt es evtl. einen anderen Weg als den über den URLClassLoader?

Ich brauche das recht dringend, da ich jetzt nicht mehr weiter machen kann. :(

Probiert habe ich echt schon alles...

Helt mir bitte.
 

Ebenius

Top Contributor
'/' ist normal in URLs. URLs sind URIs laut RFC 2396.

Nimm einfach
Code:
new File("yadda").toURI().toURL();
 
G

Guest

Gast
Weiterhin:

java.lang.ClassNotFoundException: test_1
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at bla.main(bla.java:21)
 

Ebenius

Top Contributor
Jetzt sehe ich's: Die URLs sollen nicht auf die Klasse verweisen, sondern auf den Ort, an dem sich Klassen befinden. Also auf das Verzeichnis in dem der ClassLoader suchen soll.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Klasse aus ObjectStream laden, obwohl .class Datei woanders Java Basics - Anfänger-Themen 2
H Klasse relativ zur jar mit class.forName() laden Java Basics - Anfänger-Themen 12
L .class und .jar zur Laufzeit laden Java Basics - Anfänger-Themen 4
Dilandau html applet: .jar laden statt .class Java Basics - Anfänger-Themen 4
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
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
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
B .class-File mit Reflection auslesen Java Basics - Anfänger-Themen 8
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
S Class File Editor gibt beim Start der Programms die Fehlermeldung Source not found aus Java Basics - Anfänger-Themen 1
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
C Klassen Minesweeper Problem. int needs to be final (inner class problem) Java Basics - Anfänger-Themen 3
K Frage zu Class Operator Java Basics - Anfänger-Themen 2
G Threads SuM Class Animation Java Basics - Anfänger-Themen 13
F Befehle von Java class ausführen Java Basics - Anfänger-Themen 3
G default class type Java Basics - Anfänger-Themen 3
Luk10 Generisches Class<...>[] Java Basics - Anfänger-Themen 15

Ähnliche Java Themen


Oben