Ausführen einer über das Netzwerk gesendeten Klassendatei in Java - Java, Classloader

Ich versuche, eine Klassendatei zu senden, um "Arbeit" von einem Client auf einen Server auszulagern. Ich sende eine Klassendatei "MyClass.class" und erhalte sie als "MyFooClass.class" erfolgreich.

Ich muss die main () von MyFooClass auf der Serverseite ausführen und das Ergebnis zurückgeben.

Ich versuche, die MyFooClass mit einem Classloader zu laden, aber die ClassNotFoundException zu erhalten.

Freundlich helfen.

Aditya

Antworten:

3 für die Antwort № 1

Sofern Sie RMI nicht ausführen, wird die "Server" -Seite die Klasse nicht in ihrem Klassenpfad haben und daher mit einer ClassNotFoundException fehlschlagen.

Jetzt sind die größeren Fragen, warum versuchst du esSende die ganze Klasse? Ich denke, es wäre einfacher, die Klasse auf dem Server zu haben und dann eine Textdarstellung (json, xml, yaml, csv) vom Zustand der Klasse auf dem Client zu senden und dann den Server die Repräsentation lesen zu lassen, die Klasse zu erstellen ( es) es braucht und führt die Arbeit aus.


1 für die Antwort № 2

Yes, you should not rename the class.Der Klassenlader sucht nur nach MyFooClass.class, aber verfügbar ist MyClass.class..So wird eine Ausnahme ausgegeben, die besagt, dass die erwartete MyClass.class nicht verfügbar ist.


0 für die Antwort № 3

Der Klassenname und der Dateiname müssen übereinstimmen. Sie können die Datei nicht einfach umbenennen.


Speisekarte