.class Datei "öffnen" und Methode aufrufen

Status
Nicht offen für weitere Antworten.
H

Hexagon

Gast
Hallo

Die Überschrift sagts schon ganz gut. Ich habe via swing einen Dialog zum öffnen von .class-Dateien. Ich bekomme also einen String zB: "C:\Programm.class"

Bislang hab ich es so versucht:

Code:
String file = "Programm.class"
Process p = Runtime.getRuntime().exec( "java "+file);

Das funktioniert aber nur wenn die .class datei auf C:\ liegt. Wenn sie zB in C:\test\test2\Programm.class liegt, funktioniert auch folgendes NICHT:

Code:
String file = "C:\test\test2\Programm.class"
Process p = Runtime.getRuntime().exec( "java "+file);

-----------------------------------------------------------------------

Jetzt habe ich gedacht ich hab ja den String: "C:\Programm.class"

Könnte man nicht etwas machen in der Art:

Code:
String string = "C:\Programm.class";
string.methode();

Natürlich is das totaler Käse aber ich hoffe die Idee kommt so an wie gedacht: Ich möchte quasi eine Klasse nutzen (zB Main methode aufrufen) von der ich nur den Pfad habe.

Vielen Dank für die Antworten!

MfG

Hexagon[/code]
 
H

Hexagon

Gast
ach ja, ich habe natürlich das ".class" mit substring abgeschnitten.
 

BAAAM

Mitglied
Hallo hexagon,
ich bin zwar auch totaler Anfänger, aber es könnte sein, dass ich dir helfen kann :wink:
Ich glaube der Fehler liegt am Backslash
Code:
String file = "C:\test\test2\Programm.class"
Java benutzt die Backsslash um Zeilenumbüche, Tabulaturen und ähnliches in Strings einzufügen (Escape-Sequenzen).
Ersetz mal alle \ durch \\, dann erkennt Java das du das Zeichen \ meinst und keine Funktion um Strings zu formatieren.
Vielleicht klappt es dann.

Ich hoffe das ich dir helfen konnte :D

MfG
BAAAM
 
H

Hexagon

Gast
Ne, sorry das hab ich schon versucht^^

Geht mit / oder \\ auch nicht

Ich wollte ja auch nicht mehr die möglichkeit nutzen über den Prozess sondern quasi die Klasse (als string gespeichert) aufrufen.

Aber ich kann ja schlecht

string.methode();

machen. Hat noch jmd nen Vorschlag?
 

Illuvatar

Top Contributor
Also, es gibt zwei Möglichkeiten. Was davon willst du genau machen?

a) Eine neue Java-Runtime starten, mit der besagten Klasse als main-Klasse. Dann wird von der Klasse die main-Methode aufgerufen, du hast aber keinen Einfluss mehr darauf und kannst nicht mehr kommunizieren (d.h., außer über System.in/out). Das geht mit Runtime#exec. Allerdings solltest du dir da erstmal anschauen, wie man ein Java-Programm per Konsole startet, da ist nämlich nix mit ".class", und auch nichts mit Pfadangabe. Das wäre dann eher so:
Code:
Process p = Runtime.getRuntime().exec ("java -cp [ordner-in-dem-die-klasse-liegt] [name-der-datei (ohne class)]");
(vorrausgesetzt, die Klasse ist in keinem Package)

b) Du willst die Klasse in deinem Programm verwenden. Dazu brauchst du einen ClassLoader, in dem Fall vermutlich einen URLClassLoader.
Code:
ClassLoader loader = new URLClassLoader(new URL[]{
  new File ("[ordner-in-dem-die-klasse-liegt]").toURI().toURL()
});
Class<?> myClass = loader.loadClass ("[Klassenname]");
// ab hier per reflection weiter
 
M

Michael...

Gast
Die Syntax lautet:
java MeineKlasse
(ohne .class am Ende)
 
H

Hexagoon

Gast
Danke Illuvatar , Möglichkeit b ist genau dass, was ich gesucht habe!

MfG
 
H

Hexagoon

Gast
Für alle die das fertige an einem bsp sehen wollen:


Code:
package control;

import java.io.File;
import java.net.*;
public class LoadExternClass
{
  static Object newInstance( String path, String classname ) throws Exception
  {
    URL url = new File( path ).toURI().toURL();
    URLClassLoader cl = new URLClassLoader( new URL[]{ url } );
    Class<?> c = cl.loadClass( classname );
    return c.newInstance();
  }
}
[/code]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Klassen .class Datei öffnen Java Basics - Anfänger-Themen 31
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
C "HelloWorld" - Dateien erstellt, aber ist es eine class-Datei? Java Basics - Anfänger-Themen 2
H .class Datei wird nicht ausgeführt Java Basics - Anfänger-Themen 2
L Fehler bei der AUsführung der .class Datei Java Basics - Anfänger-Themen 23
N Fehlende .class Datei Java Basics - Anfänger-Themen 4
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
L Classpath Zwei Bibliotheken enthalten gleiche .class Datei Java Basics - Anfänger-Themen 6
Detox Class Datei erzeugen nicht möglich über cmd Java Basics - Anfänger-Themen 1
J Erste Schritte .class datei in meine form inkludieren Java Basics - Anfänger-Themen 3
H Umgebungsvariable In DOS-Box läuft die fehlerfreie Class-Datei nicht. Java Basics - Anfänger-Themen 5
S Erste Schritte Ausführen einer Class Datei Java Basics - Anfänger-Themen 6
N Jar-File soll externe class-Datei benutzen Java Basics - Anfänger-Themen 8
D Methoden Methode in anderer .class Datei Funktioniert nicht. Java Basics - Anfänger-Themen 11
P .class Datei direkt starten (optional Java Datei direkt starten) Java Basics - Anfänger-Themen 13
A CMD findet die java.class Datei nicht Java Basics - Anfänger-Themen 46
J class Datei einbinden Java Basics - Anfänger-Themen 5
B .class datei kopieren und auführen Java Basics - Anfänger-Themen 8
J Kann keine .class Datei starten Java Basics - Anfänger-Themen 13
M Klasse aus ObjectStream laden, obwohl .class Datei woanders Java Basics - Anfänger-Themen 2
Luk10 .class datei Java Basics - Anfänger-Themen 4
J Batch Datei liefert CLASS NOT FOUND Warum !? Java Basics - Anfänger-Themen 11
A .class datei mit eingabeaufforderung starten Java Basics - Anfänger-Themen 8
D .class-Datei innerhalb einer .jar-Datei verändern Java Basics - Anfänger-Themen 4
J Ausführen einer Class Datei von der CD Java Basics - Anfänger-Themen 4
M *$1.class in der .jar Datei Java Basics - Anfänger-Themen 2
R Decompilieren einer .class-Datei Java Basics - Anfänger-Themen 14
J Frage zur class-Datei Java Basics - Anfänger-Themen 7
J Class datei lesen Java Basics - Anfänger-Themen 2
A Ausführbare jar-Datei erstellen (mit Eclipse) - main-class? Java Basics - Anfänger-Themen 4
S .class datei erstellen Java Basics - Anfänger-Themen 5
M class-Datei Java Basics - Anfänger-Themen 4
ven000m Primzahl.class wie starte ich diese einzelne Datei? Java Basics - Anfänger-Themen 10
N zur Laufzeit gefundene class-Datei verwenden - wie geht das? Java Basics - Anfänger-Themen 2
G objekt aus einer .class datei Java Basics - Anfänger-Themen 16
K Nur .class Datei aber keine .java Datei vorhanden Java Basics - Anfänger-Themen 2
G class-Datei Java Basics - Anfänger-Themen 11
M Datei bei Class und Jar Version ladbar? Java Basics - Anfänger-Themen 2
S [JBuilder] Class Datei erstellen? Java Basics - Anfänger-Themen 17
J class-datei ausführen Java Basics - Anfänger-Themen 12
rambozola java-datei ohne mainfunktion in class-datei kompilieren? Java Basics - Anfänger-Themen 4
D class-Datei in anderem Ordner Java Basics - Anfänger-Themen 6
P .class-Datei ändern mit Decompiler und zurückwandeln! Java Basics - Anfänger-Themen 8
S Pfad zur Class oder Jar Datei abfragen. Java Basics - Anfänger-Themen 3
L Class-Datei auf anderem Rechner Java Basics - Anfänger-Themen 9
G class-Datei dekompilieren Java Basics - Anfänger-Themen 1
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
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
O Verständniss Problem bei abstract class Java Basics - Anfänger-Themen 7
H .jar unterschied .class Java Basics - Anfänger-Themen 3
J class version 52 und 56 Java Basics - Anfänger-Themen 6
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
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
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
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
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

Ähnliche Java Themen

Neue Themen


Oben