Kommunikation zwischen 2 Jar-dateien

AnFÄnGE_R

Mitglied
Hallo Leute,
ich habe folgendes Problem und bei Google irgendwie nichts gefunden :
Ich möchte einer Variablen in 1.jar einen Wert übergeben und diese Variable dann in 2.jar verwenden und auslesen

Wie kann ich das machen. Muss ich vielleicht eine Schnittstelle einbauen damit die beiden Jar-Dateien miteinander kommunizieren können ?

Wie mein Name schon sagt bin ich noch Anfäger in der Java-Programmierung 🙂

Wäre toll wen ihr mir helfen könntet.
gez. Anfänger
 
Wenn du zwei Java VMs hast in denen die zwei JarDAteien Arbeiten (z.b: Client und Server)

Dann brauchst du etwas zur Interprozesskommunikation

RMI, EJB, Sockets, Files, HTTP
 
Wenn du zwei Java VMs hast in denen die zwei JarDAteien Arbeiten (z.b: Client und Server)

Dann brauchst du etwas zur Interprozesskommunikation

RMI, EJB, Sockets, Files, HTTP

Danke für die Idee, aber ich möchte das 1.jar beim Ausführen im Hintergrund 2.jar läd und ihr dann wenn sie benötigt wird die nötigen Parameter übergibt.

Empire Phoenix hat gesagt.:
Alternativ einfach ein Project 3 machen, das 1.jar und 2.jar im buildpath hat, und entsprechen die Methodenaufrufe weitergibt an die andere.

Klingt gut. Da ich noch Anfänger bin könntest du mir vlt. in groben Zügen sage wie ich das implementieren kann ? Muss ich in den Haupklassen der Jar - Dateien Interfaces einsetzten, welche dann auf eine Methode der 2 Jar warten um ihre Parameter zu bekommen ?
 
Danke für die Idee, aber ich möchte das 1.jar beim Ausführen im Hintergrund 2.jar läd und ihr dann wenn sie benötigt wird die nötigen Parameter übergibt.
Wenn die zwei in verschiedenen VMs laufen dann kommst du um Sockets, RMI, oder ähnliches nicht drumrum.

EDIT:
Was genau sind denn 1.jar und 2.jar? Welche aufgaben sollen die haben?
 
Naja als Beispiel:
Jar 1 öffnet das Hauptprogramm mit welchem man Graphen erstellen kann. Jar 2 ist dafür zuständig das man die Farben und Namen der Menüpunkte ändern kann (sie soll im Hintergrund geladen werden, also wie eine Art Plugin)
 
Dann genügt es die Manifest-Datei aus dem Jar des Hauptprogrammes um den Classpath zu erweitern und dort das Plugin-Jar aufzulisten.
 
Also steht dann in der Mainfest Datei:

Code:
Mainfest-Version: 1.0
Main-Class: graph.com.main
Class-2: graphplugin.colors

?
 
Ein Freund von mir (Minecraftspieler) hat so einen Server (Bukkit).
Da dieser Server und somit seine Plugins ebenso in Java geschrieben sind, hatte er mich gebeten ein Plugin für ihn zu prgrammieren. Dafür musste ich nur eine Klasse mit dem Namen JavaPlugin erweitern und 2 Methoden überschreiben, damit das PlugIn andoken kann :

Java:
import bukkit.org.JavaPlugin;

public class Test extends JavaPlugin{

onDisable(){
 System.out.println("OFF");
}

/**
*Diese Methode überschreibt die Methoden von JavaPlugin
*Was macht das Plugin wenn es eingeschaltet ist ?
*/
onEnable(){
 System.out.println("ON");
  System.out.println("Version 0.1");
}

So in etwa möchte ich es auf mein kleines Programm übertragen.
 
Ich verzweifle noch an einer Frage:
Wie bekomme ich die Werte aus dem Interface in das Hauptprogramm (Klasse mit Startmethode) ?
Ein Interface kann ja schließlich keine Main() - Methode enthalten und ein neues Objekt des Interfaces kann die Hauptklasse auch nicht anlegen.

LG Anfänger.
 
Zunächst einmal kann ein Interface keine Werte enthalten, ein Interface definiert nur die zu implementierenden Eigenschaften.
Daher: Was meinst Du mit Interface und woher "kommt" es?
 

Zurück
Oben