Guten Tag!
Ich habe eine simple Java-Anwendung geschrieben:
Dazu gibt es noch eine zweite Anwedung, wobei der Quellcode der nun folgt funktioniert aber nicht zu dem von mir gewünschten Ergebnis führt:
Starte ich Application 2 erscheint auf der Konsole:
Soweit so gut. Hier wurde von Application 2 aus Application 1 initiiert und dann die Methode aufgerufen. Ich möchte das Application 2 auf die Methode von Application 1 zugreift, aber ohne diese zu initiieren. Das heißt wenn Application 1 läuft erscheint "Well done", wenn Application 1 jedoch nicht läuft entsteht eine Fehlermeldung. Aussehen könnte das im Prinzip so:
Ich habe schon Shared Memory Lösungen Richtung JNI / JavaSpaces angeschaut, würde aber gerne bei diesem Konzept bleiben. Ich vermute mit der ThreadID lässt sich vielleicht was machen, aber an die muss ich erstmal ran kommen. Früher unter Windows 98 mit Visual Basic ging das Anhand des Fenstertitels, von daher bin ich mir sicher das soetwas heute erst recht gehen muss. Die Frage die bleibt ist wie. :bahnhof:
Bernd
Ich habe eine simple Java-Anwendung geschrieben:
Java:
package com.mydomain.jsm.app.a;
public class MainClass
{
public static void main(String[] args)
{
System.out.println("Application 1");
}
public MainClass()
{
}
public synchronized String Responder()
{
return "Well done";
}
}
Dazu gibt es noch eine zweite Anwedung, wobei der Quellcode der nun folgt funktioniert aber nicht zu dem von mir gewünschten Ergebnis führt:
Java:
package com.mydomain.jsm.app.b;
public class MainClass
{
public static void main(String[] args)
{
System.out.println("Application 2");
System.out.println((new com.mydomain.jsm.app.a.MainClass()).Responder());
}
public MainClass()
{
}
}
Starte ich Application 2 erscheint auf der Konsole:
Code:
Application 2
Well done
Soweit so gut. Hier wurde von Application 2 aus Application 1 initiiert und dann die Methode aufgerufen. Ich möchte das Application 2 auf die Methode von Application 1 zugreift, aber ohne diese zu initiieren. Das heißt wenn Application 1 läuft erscheint "Well done", wenn Application 1 jedoch nicht läuft entsteht eine Fehlermeldung. Aussehen könnte das im Prinzip so:
Code:
try
{
System.out.println((no.absolute.idea.GrepWindowByAnything("com.mydomain.jsm.app.a.MainClass")).Responder());
}
catch(no.absolute.idea.AnyException exception)
{
}
Ich habe schon Shared Memory Lösungen Richtung JNI / JavaSpaces angeschaut, würde aber gerne bei diesem Konzept bleiben. Ich vermute mit der ThreadID lässt sich vielleicht was machen, aber an die muss ich erstmal ran kommen. Früher unter Windows 98 mit Visual Basic ging das Anhand des Fenstertitels, von daher bin ich mir sicher das soetwas heute erst recht gehen muss. Die Frage die bleibt ist wie. :bahnhof:
Bernd
Zuletzt bearbeitet: