Wert an laufenden Java-Prozess übergeben

T

threadi

Mitglied
Hi,

ich weiß leider nicht unter welchem Stichwort ich dazu etwas finden könnte. Folgendes würde ich gerne umsetzen:
Wenn jemand in einem Browser auf einen Link klickt der ein spezielles Protokoll (nicht http sondern z.B. javaforum://) enthält, soll der Client automatisch eine Java-Datei aufrufen die in dem Link enthaltene Werte an eine zweite, bereits laufende Java-Instanz weitergibt.

Der Part mit dem eigenen Protokoll und der Weitergabe an die erste Java-Datei habe ich bereits gelöst (keine Sorge: ist nur für einen begrenzten Personenkreis und ja, hat mit Java wenig zu tun). Woran ich scheitere ich die Übergabe der Werte von der ersten an die 2. bereits laufende Java-Instanz. Wie ich an die Prozess-ID komme habe ich schon herausgefunden, aber wie spreche ich nun diesen Prozess an und vor allem: wie übergebe ich ihm den oder die Werte? Wenn mir jemand dazu ein Stichwort dazu nennen könnte wäre ich glücklich :)

threadi
 
T

threadi

Mitglied
Über die wollte ich nicht gehen da die Software auf Client-PCs läuft und ich dort nicht unbedingt einen Port öffnen wollte. Oder siehst Du das nicht als Problem an?
 
X

Xyz1

Gast
Doch, aber es muss ja gar kein Port für Außen geöffnet werden. Eine andere IPC gibt es in Java nicht. (Außer ein paar obsolete Methoden).
 
T

tommysenf

Top Contributor
Named Pipes sind für deinen Anwendungsfall eventuell eine Alternative
 
W

White_Fox

Top Contributor
Wenn es keine Datei und kein Socket sein soll, könntest du es auch mit einer virtuellen COM-Schnittstelle lösen. Irgendwo hab ich ein Programm rumzuliegen, daß jeweils zwei solcher COM-Ports, die virtuell zusammengestöpselt sind, zur Verfügung stellt. Sprich: Was man in COM-Port A reingießt, kommt aus COM-Port B wieder raus und umgekehrt. So in der Art meine ich das, nur das halt der eine COM-Port in deinem Programm drinsteckt.

Ich glaub sogar das Programm war Open Source, leider hab ich den Namen vergessen. Das wäre aber wohl keine reine Java-Lösung mehr, und sicherlich auch reichlich aufwändig. Datei und Socket sind da deutlich einfacher.
 
T

threadi

Mitglied
Hey,

danke für eure Antworten vor einigen Wochen. Hab mich inzwischen für named pipes über JNA entschieden (vor allem weil JNA in dem Projekt ohnehin bereits genutzt wird) und auch implementiert. Das funktioniert auch grundsätzlich gut. Bis auf ein Problem: die Anwendung, die die named pipe öffnet läuft mit vollen Admin-Rechten. Die Anwendung, die Werte an die named pipe übergeben soll, läuft ohne diese. Daher funktioniert das bisher noch nicht so wie es soll. Wenn beides mit vollen Adminrechten läuft funktioniert es perfekt.

Hier der Code mit der die named pipe in Java geöffnet wird:

Code:
WinBase.SECURITY_ATTRIBUTES saAttr = new WinBase.SECURITY_ATTRIBUTES();
        saAttr.dwLength = new WinDef.DWORD(saAttr.size());
        saAttr.bInheritHandle = true;
        saAttr.lpSecurityDescriptor = null;
        
        // create the named pipe with the defined name
        HANDLE hNamedPipe = Kernel32.INSTANCE.CreateNamedPipe(
                pipename,                                                                    // name of the pipe
                WinBase.PIPE_ACCESS_DUPLEX,                                                    // dwOpenMode
                WinBase.PIPE_TYPE_BYTE | WinBase.PIPE_READMODE_BYTE | WinBase.PIPE_WAIT,    // dwPipeMode
                1,                                                                            // nMaxInstances,
                Byte.MAX_VALUE,                                                                // nOutBufferSize,
                Byte.MAX_VALUE,                                                                // nInBufferSize,
                1000,                                                                        // nDefaultTimeOut,
                saAttr                                                                        // lpSecurityAttributes
        );

Soweit ich schon rausfinden konnte muss ich saAttr mit einem Pointer auf einen Security Descriptor definieren. Und hier hört es bei mir leider auf. Das geht ziemlich tief in Windows API-Materie rein. Weiß dazu jemand hier etwas? Ich finde einige C++-Beispiele, aber steige dort einfach nicht durch um das ggfs. in Java/JNA zu übersetzen :/
 
T

threadi

Mitglied
Ein Tag Pause hat geholfen. Hab eine Lösung gefunden. Hier falls es andere interessiert:

Code:
SECURITY_DESCRIPTOR_RELATIVE securityDescriptor = Advapi32Util.getFileSecurityDescriptor(new File(configDir, "log.txt"), false);
        
        // define the security-settings for named pipe
        WinBase.SECURITY_ATTRIBUTES saAttr = new WinBase.SECURITY_ATTRIBUTES();
        saAttr.dwLength = new WinDef.DWORD(saAttr.size());
        saAttr.bInheritHandle = true;
        saAttr.lpSecurityDescriptor = securityDescriptor.getPointer();

Hintergrund: ich hole einfach die DACL und SACL von einer anderen Datei, die die Anwendung selbst schreibt und verwaltet, und gebe deren Pointer an die Security-Attributes. Klappt bei mir auf bisher 3 Testgeräten problemlos.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Value Wert aus HTML-Button mittels thymeleaf spring an java übergeben Allgemeine Java-Themen 0
L String zu repräsentativen Wert Allgemeine Java-Themen 0
S Drools: Zählen wie oft ein Wert vorkommt Allgemeine Java-Themen 1
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
A Variablen Funktion übergibt den Wert nicht Allgemeine Java-Themen 13
P JSpinner gibt leeren Wert zurück Allgemeine Java-Themen 5
KeexZDeveoper Nächstgelegenden Wert ermitteln Allgemeine Java-Themen 5
C Variablen Variablen mit unendlichem Wert Allgemeine Java-Themen 22
G Iteratoren - Wie kann man mithilfe von Iteratoren nur jeden zweiten Wert eines TreeSets ausgeben? Allgemeine Java-Themen 4
A Mit dem letzten bis zum ersten Wert aus Array rechnen Allgemeine Java-Themen 15
T Array - Wert am nächsten zur vollen Sekunde Allgemeine Java-Themen 20
F Wert in Variable schreiben, wenn diese gerade genutzt wird Allgemeine Java-Themen 10
G Methoden BMI -Wert Aufgabe(Methoden) Allgemeine Java-Themen 4
F Wert ändert sich nicht Allgemeine Java-Themen 12
E JavaFX String-Wert geht "verloren" - ratlos Allgemeine Java-Themen 2
A In Excel-Datei schreiben, Formeln der Mappe anwenden, Wert lesen Allgemeine Java-Themen 3
R Int Wert im Dialogfeld ändern Allgemeine Java-Themen 4
B [Android] EditText-Object ist null - Nimmt nicht den Wert des enthaltenen Textfeldes ein Allgemeine Java-Themen 2
O log4j, Problem bei Ausgabe null-Wert Allgemeine Java-Themen 0
H Bestimmten Wert aus String parsen Allgemeine Java-Themen 7
M HashMaps: Wert erweitern Allgemeine Java-Themen 3
C Object.equals() liefert falschen Wert? Allgemeine Java-Themen 14
M Parallele Programmierung: volatile Variable nimmt ungewöhnlichen Wert an Allgemeine Java-Themen 3
T Datentypen ArrayUtils.indexOf( ... ) liefert -1 obwohl Wert scheinbar enthalten ist Allgemeine Java-Themen 15
H Speziellen Wert aus String filtern Allgemeine Java-Themen 4
M JExcel Wert aus Zelle übergeben/ausgeben Allgemeine Java-Themen 2
iB0T Variable Wert ausrauchen Allgemeine Java-Themen 3
iB0T "goto" Befehl aus Batch in Java und Variablen wert immer wieder neu setzen Allgemeine Java-Themen 4
G Z Wert - 3 Dimensionaler Punkt Allgemeine Java-Themen 13
S JPA und Entity-Klassen: Wert ungültig Allgemeine Java-Themen 6
C .Ini-Datei Wert Änderungen werden nicht angenommen Allgemeine Java-Themen 3
J String mit "," in Double Wert konvertieren Allgemeine Java-Themen 7
A nur einen Wert aus einer .conf lesen und erneuern Allgemeine Java-Themen 3
I getResponseCode(); returnt einen falschen Wert? Allgemeine Java-Themen 7
N Applet Apache Poi Wert einer Formel ausgeben Allgemeine Java-Themen 5
G Input/Output Manuelle Änderung von Wert in Swing Komponente bemerken! Allgemeine Java-Themen 2
S Newton-Verfahren liefert nur 1 Wert Allgemeine Java-Themen 3
E Wert von enum zur Laufzeit festlegen. Allgemeine Java-Themen 5
E Wert in andere Klasse übernehmen Allgemeine Java-Themen 4
X this.val$WERT Was ist den das? Allgemeine Java-Themen 2
K Scanner - große Textfile, nur 0 ab betim. Wert Allgemeine Java-Themen 4
S Daten in Array als INT-Wert einlesen - jetzt als csv Datei Allgemeine Java-Themen 5
T OLE-Automation mit Excel (Wert übergabe) Allgemeine Java-Themen 1
Benji0815 Wert in GUI aktualisieren, Beobachter Allgemeine Java-Themen 9
O Hash Wert von Passwörter erstellen (SHA) Allgemeine Java-Themen 9
H Double Wert über OutputStream verschicken Allgemeine Java-Themen 2
S Methode übergibt immer den gleichen Wert Allgemeine Java-Themen 21
J Was ist schneller? Neue Variable oder neuer Wert speziell int Allgemeine Java-Themen 3
M Bit Wert umdrehen Allgemeine Java-Themen 5
J ArrayList aus Point-Objekten nach dem x-Wert ordnen Allgemeine Java-Themen 2
B Wert mit Adresse auslesen Allgemeine Java-Themen 11
S Array: Anzahl Elemente mit best. Wert zählen Allgemeine Java-Themen 4
M Ein Array-Wert soll sich verändern, aber 2 tun es? Allgemeine Java-Themen 7
S Prüfen auf Hex-Wert fester Länge! Allgemeine Java-Themen 5
G transientes Objekt mit Wert initialisieren? Allgemeine Java-Themen 7
J in einer static Variable Wert ändern Allgemeine Java-Themen 6
reibi double-Wert auf 2 Stellen nach dem Komma abschneiden Allgemeine Java-Themen 6
S CRC wert berechnen ergibt 0 ? Allgemeine Java-Themen 9
MQue Float- Wert formatieren Allgemeine Java-Themen 8
A Private-Wert eines Objekts auslesen Allgemeine Java-Themen 9
R Wert von einer Klasse in eine andere bekommen Allgemeine Java-Themen 6
J Integer Array Wert vorhanden? Allgemeine Java-Themen 6
N Wert in ArrayList ändert sich ohne wissentliches zutun Allgemeine Java-Themen 6
O System.nanoTime() einheitlichen Wert auf mehreren Rechnern? Allgemeine Java-Themen 9
H JTable Wert verändern Allgemeine Java-Themen 3
S den zweit niedrigsten wert in einem array berechnen Allgemeine Java-Themen 2
J variablen wert ändernung mit einer art actionlistener? Allgemeine Java-Themen 4
J Vector - Wert ersetzen Allgemeine Java-Themen 14
H Zugriff auf Wert einer Umgebungsvariablen Allgemeine Java-Themen 2
H JSF - Wert an ein managed bean übergeben Allgemeine Java-Themen 2
H boolean wert ändern Allgemeine Java-Themen 2
R Wert in Hashtable ändern (Key ändern, Value bleibt) Allgemeine Java-Themen 3
G Wandeln von Char Wert in Zeichen? Allgemeine Java-Themen 2
B Java Klasse muß in Terminal einen Wert zurückgeben. Allgemeine Java-Themen 3
R ascii-wert zuweisung Allgemeine Java-Themen 4
B Wert zuweisen bei deklaration? Allgemeine Java-Themen 9
C ImageIO die read-Methode liefert mir ein null- Wert zurück Allgemeine Java-Themen 10
A Float-Wert auf 2 Stellen nach den Komma runden ? Allgemeine Java-Themen 2
B Double-Wert aus einem HexString erstellen. Allgemeine Java-Themen 11
B Wie bekomme ich den Wert aus der For-Schleife? Allgemeine Java-Themen 5
F Pfad der laufenden JAR ermitteln (mit Archivnamen) Allgemeine Java-Themen 2
O Wie laufenden Prozess einfangen? Allgemeine Java-Themen 7
N Unter Mac Os X alle laufenden Prozesse ausgeben Allgemeine Java-Themen 3
S Speicherprobleme bei zwei laufenden JAVA-Applikationen Allgemeine Java-Themen 10
T Best Practice Java und unmodifiable Allgemeine Java-Themen 10
KeTho1712 Java Swing: JTable standardmäßig füllen, sodass bei Start bereits Datensätze gespeichert sind Allgemeine Java-Themen 1
Vanessa001 Hausaufgabe in Java Allgemeine Java-Themen 7
kanywayne Java programmieren: Polynom Klasse Allgemeine Java-Themen 4
T C++ Methode Übersetzung in Java Allgemeine Java-Themen 3
s_1895 Hilfe bei Java Tic Tac Toe Allgemeine Java-Themen 8
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
AGW in Java-Code plötzlich ein paar Wörter in Rot Allgemeine Java-Themen 2
F Java Console Allgemeine Java-Themen 2
Gaudimagspam Skip Liste erstellen in Java Allgemeine Java-Themen 3
AGW Java zu Kotlin Allgemeine Java-Themen 5
bax7891 Java Damals - Java Heute Allgemeine Java-Themen 6
tm.grp Teilsummenproblem in Java Allgemeine Java-Themen 2
N Lottowebsite programmieren mittels Java, HTML,.... Allgemeine Java-Themen 7
O Input/Output java.io.File beenden Allgemeine Java-Themen 5
S Java class direved from inner class Allgemeine Java-Themen 6

Ähnliche Java Themen

Anzeige

Neue Themen


Oben