daTom Geschrieben 21. Dezember 2007 Geschrieben 21. Dezember 2007 Hallo, der Kunde wünscht, dass meine Applikation (Java Applikation) durch eine Executable zu starten ist. Es handelt sich um eine RCP-Anwendung, die mit Eclipse entwickelt worden ist. Soweit ich weiß bietet Eclipse so einen "Executable Generator" an, allerdings habe ich folgendes Problem: Unsere Applikation braucht einen speziellen Eintrag als Umgebungsvariable (Pfad zu einem anderen Produkt von uns). Dieser Pfad muss auch in der PATH-Variable stehen. Zur Zeit starten wir die Applikation mit Hilfe einer Batch-Datei, wo diese Einträge vorher mittels "SET" gesetzt wird. Die Einträge dürfen wir nur "temporär" vornehmen, d.h. sie dürfen nur für diesen Prozess gültig sein. Es ist ja nun kein Problem so eine Executable zu schreiben, aber wenn ich diese Variablen in der Exe setze, kann meine Applikation diese gar nicht "sehen", da dies doch dann wieder ein eigenständiger Prozess ist, oder? Hat jemand einen Tipp für mich, wie ich das am besten lösen könnte (wenn ich mit meiner Annahme oben richtig liege) Gruß Zitieren
flashpixx Geschrieben 21. Dezember 2007 Geschrieben 21. Dezember 2007 Hallo, wenn Ihr die Variablen nur temporär setzen dürft, warum verwendet Ihr für Anwendung keine globale Konfiguration (XML, INI o.ä.). Damit hättest Du zentral die Daten stehen und kannst von jedem Programm (z.B. JRE) auf diese zugreifen, persönlich würde ich da die Konfig für jeden Benutzer unter seinem Home anlegen. HTH Phil Zitieren
daTom Geschrieben 21. Dezember 2007 Autor Geschrieben 21. Dezember 2007 Der Gedanke ist mir auch schon gekommen. Allerdings ist diese Variable zwingend notwendig, damit das Zusammenspiel zwischen den beiden Applikationen überhaupt funktioniert. Frag mich jetzt bitte nicht nach Sinn- oder Unsinn des ganzen, ich hab da leider keinen Einfluss drauf :-) Zitieren
flashpixx Geschrieben 21. Dezember 2007 Geschrieben 21. Dezember 2007 Kannst Du vielleicht mal ein paar Infos mehr posten. Mir fällt jetzt zu Java nur der CLASSPATH ein, der aber global gesetzt sein sollte. Evtl solltest Du von den Umgeungsvariablen weg, vielleicht zur Übergangsphase es so kodieren, wenn Umgebungsvariable nicht da, dann versuchen die Konfig zu lesen, wenn Variable da, dann verwenden. Wenn Du mit "SET" aus einer Batchdatei die Variable setzt, dann bleibt sie so lange erhalten, so lange, so lange die Batchdatei ausgeführt wird (ist ja ein Command-Prompt). In Unix kann ich das analog machen, wenn ich nun aus dem Prompt 2 Programme dann sieht das Shellscript bei mir so aus: BLUB="a:b:c" export BLUB meinprogramm1 & meinprogramm2 & Über den Suffix "&" werden dann beide Programme gestartet, d.h. Programm 1 wird gestartet und in den Hintergrund "verschoben", sonst müsste ja das Programm erst beendet werden, bevor 2 starten kann. Ich bin mir jetzt nicht so ganz sicher, ob das so exakt funktioniert und auch unter Windows ähnlich realisierbar ist. Evtl aber mal danach suchen Phil Zitieren
daTom Geschrieben 21. Dezember 2007 Autor Geschrieben 21. Dezember 2007 Ok, sorry für die spährlichen Angaben. Vielleicht zu aller erst: Das ganze hier bezieht sich rein auf eine Windows-Umgebung. Deswegen hab ich ja auch den Windows-Bereich gewählt Die Java-Applikation arbeitet mit einer C++-Applikation zusammen. Die C++-Applikation stellt Dienste zur Verfügung um auf bestimmten Geräten Dienste auszuführen und Informationen auszulesen zu können. Damit andere Applikationen (also meine Java-Applikation) mit der C++-Applikation zusammenarbeiten kann, schreibt diese halt vor, dass eine bestimmte Umgebungsvariable existieren muss, die den Pfad zu dieser C++- Applikation beinhaltet (wie gesagt, der Sinn dahinter ist mir selber nicht klar) Über den bisherigen Weg mit der Batch-Datei ist dies kein Problem, hier wird temporär (also für den Prozess der Batch-Datei) diese Variable gesetzt und zeitgleich auch die Java-Applikation gestartet. Wenn ich die ganzen Befehle aber jetzt in eine Executable integriere, funktioniert es bei mir anscheinend nicht. Daraus folgere ich, dass hier vielleicht die Sichtbarkeiten anders sind. Hoffe es ist jetzt etwas verständlicher Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.