Jar und Exe verhalten sich unterschiedlich unter Vista

Status
Nicht offen für weitere Antworten.
S

scooterJava

Gast
Ich werkle auf einem eingeschränkten Benutzerkonto unter Vista mit Java 5. Mein Programm soll nachher auf XP- bzw. Vista-Rechnern laufen, die vorwiegend auf auf solchen Konten angemeldet sind.

Im Programm starte ich eine andere Anwendung auf diese Weise:
Code:
ProcessBuilder PB = new ProcessBuilder( command, params[ 0 ], params[ 1 ] );
Process process = PB.start();
Das klappt unter Eclipse wunderbar: Die UAC öffnet sich und will das Admin-Passwort. Nach Eingabe kann das Programm dann starten.

In einer mit JSmooth komplierten Jar funktioniert es leider nicht. Jedesmal moniert mein Programm einen von mir abgefangenen Ausführungsfehler; die UAC hat sich nämlich nicht geöffnet.

Auch wenn ich den Code ändere zu
Code:
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec( command + " " + params );
bietet sich das gleiche Bild zu Jar und Exe. Ebenso, wenn ich die Methode, die diese Aufrufe enthält, synchronisiere.

Ein waitFor() ist im Programmablauf nicht möglich. Jemand eine Idee?
 
S

scooterJava

Gast
So, nach einigem Ausprobieren ist das Bild etwas klarer.

Getestet habe ich mein Programm unter Java 5 und 6 auf jeweils XP und Vista, unter einem Benutzerkonto (also nicht Admin). Unter XP läuft das Programm einwandfrei, unter Vista läuft es nur einwandfrei innerhalb von Eclipse. Starte ich die Jar von der Kommandozeile oder eine mit JSmooth generierte Exe, hängt das Programm an folgender Stelle:
Code:
Runtime runtime = Runtime.getRuntime();
// command - z. B. "prog.exe"
// args - z. B. "-y"
// installpath - z. B. "C:\myprog"
Process process = runtime.exec( command + " " + args, null, new File( installpath ) ); // Vista knallt hier
Die Ursache liegt also bei Vista und nicht bei Java. Vista startet bei Ablauf in Eclipse korrekt die UAC, seine Benutzerkontensteuerung, und erwartet, dass ich die Berechtigung zum Vorgang erteile. Diese startet nicht beim Ablauf auf der Kommandozeile und als Exe-Datei.

Gibt es eine Möglichkeit, für Vista diese in Java immer anzuschalten oder hat jemand eine andere Lösung?
 

Wolfgang Lenhard

Bekanntes Mitglied
Diese ganze UAC-Sache ist wirklich unerfreulich. Im Forum gab es schon einige Diskussionen dazu, z. B.
http://www.java-forum.org/de/viewtopic.php?t=78342
http://www.java-forum.org/de/topic78569_runtime-exec-unter-win-vista.html

Spannend fände ich, wenn ein Programm während des Betriebs gezielt höhere Rechte anfordern könnte, aber eine Lösung habe ich nicht gefunden. Falls Du etwas dazu rauskriegst wäre ein Tipp klasse!

Die einfachste, absurde Möglichkeit wäre beispielsweise, die exe "install" oder "setup" zu nennen.

Ciao,
Wolfgang

P.S.: Vielleicht hilft Folgendes: AdvanceInstaller (http://www.advancedinstaller.com/user-guide/vista-uac.html) kann Applikationen so ausliefern, dass diese UAC anfordern. Das geht auch in der kostenlosen Version.
 
S

scooterJava

Gast
@HoaX: Das mit dem Manifest könnte die Ursache sein. Der zweite von dir genannte Artikel beschreibt eine .manifest-Datei im XML-Format. Im Fat Jar sehe ich eine MANIFEST.MF als Textdatei. Wie bringe ich beides zusammen?
 

HoaX

Top Contributor
Das Vista-Manifest bezieht sich auf eine exe-Datei, nicht aufs jar. Du brauchst also einen entsprechenden Starter.
 
S

scooterJava

Gast
Danke an alle. Die Manifest-Datei hat es gelöst.

Mir stellt sich nur ein Sicherheitsproblem: Gleich, ob ich die Manifest-Datei als XML-Datei im gleichen Ordner belasse oder in die Exe integriere, ist es doch so für ein Programm sehr einfach, sich höhere Rechte zu holen - somit auch für Virenprogrammierer. Gibt es da Abhilfe oder ist das ein Windows-"Feature"? Bei mir erscheint nämlich jetzt gar keine Berechtigungsabfrage mehr ...
 
S

scooterJava

Gast
Tja, das mit der Manifest-Datei hat zwei Wochen lang funktioniert. Jetzt meckert Vista wieder :(. Irgendwo scheint sich Vista also zu merken, wie die angegebenen Datei gestartet wurden und es scheint jetzt etwas schief gegangen zu sein damit. Hat jemand eine Idee, wo ich suchen kann?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
javamax2000 Sehr sonderbares Verhalten Allgemeine Java-Themen 6
kodela Unterschiedliches Verhalten von BufferedReader Allgemeine Java-Themen 3
J Unvorhersehbares Verhalten - benutze ich die falsche Bedingungsprüfung oder brauche ich Threads? Allgemeine Java-Themen 12
N Best Practice Allgemeines Verhalten für ein Interface implementieren? Allgemeine Java-Themen 7
Thallius Merkwürdiges Verhalten von Swingworker.cancel() Allgemeine Java-Themen 2
T Merkwürdiges Thread-Verhalten Allgemeine Java-Themen 6
Tommy Nightmare Merkwürdiges Verhalten bei der Datenzuweisung Allgemeine Java-Themen 4
F JTable Pfeiltasten-Verhalten Allgemeine Java-Themen 1
Thallius Swing Merkwürdiges Verhalten beim Panel Tausch Allgemeine Java-Themen 3
W LocalDateTime Verhalten unerklärlich Allgemeine Java-Themen 1
Thallius Merkwürdiges StringBuilder verhalten (Char Encoding) Allgemeine Java-Themen 6
C Unterschiedliches Verhalten Editor und deployte Application Allgemeine Java-Themen 3
S Threads ThreadPoolExecutor eigenartiges verhalten Allgemeine Java-Themen 5
A Java Verhalten bei parallelem Aufruf derselben Methode?? Allgemeine Java-Themen 2
P Applet-Zugriffsrechte: merkwürdiges Verhalten Allgemeine Java-Themen 4
M Threads Viele Aufrufe aus Thread, komisches Verhalten Allgemeine Java-Themen 8
S getChildAt() Verhalten Allgemeine Java-Themen 4
S Frage zu Threads (Sichtbarkeit und Verhalten) Allgemeine Java-Themen 11
R Merkwürdiges Verhalten der equals Method Allgemeine Java-Themen 4
1 Collections Generics, internes Verhalten Allgemeine Java-Themen 16
S Collections Unverständliches Verhalten... Allgemeine Java-Themen 4
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
C Komisches Verhalten zwischen Set und List bei contains Allgemeine Java-Themen 6
S (Doppel)Klick-Verhalten vom Desktop unter Java imitieren. Allgemeine Java-Themen 5
A Seltsames Verhalten von JUnit-Tests im Zusammenspiel mit Ant Allgemeine Java-Themen 6
S Verhalten von System.getenv() in Ubuntu / Linux Allgemeine Java-Themen 12
hdi Verhalten bei nicht behandelten Exceptions Allgemeine Java-Themen 2
J Rätselhaftes Verhalten von Collections Allgemeine Java-Themen 5
M Unerklärliches Verhalten bei Variableninitialisierung Allgemeine Java-Themen 11
S Verhalten der Klasse TreeSet... Allgemeine Java-Themen 4
M Seltsames Verhalten eines StringReaders Allgemeine Java-Themen 2
spacegaier HeapSpace der VM ändern -> Verhalten von JARs und EXEs Allgemeine Java-Themen 10
M merkwürdiges Verhalten von JUnit4 Allgemeine Java-Themen 2
M JList seltsames verhalten. Allgemeine Java-Themen 5
K Seltsames Verhalten von byte[] und Strings Allgemeine Java-Themen 6
S Seltsames Verhalten von split() Allgemeine Java-Themen 3
K Überschreiben von 'static'-Methoden hat anderes Verhalten? Allgemeine Java-Themen 2
A Streams: merkwürdiges Verhalten Allgemeine Java-Themen 7
A Streams - merkwürdiges Verhalten Allgemeine Java-Themen 2
N Lwjgl 3d Objekt wird schmaler, wenn es sich dreht Allgemeine Java-Themen 0
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
A Eclipse hängt sich auf Allgemeine Java-Themen 7
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
Viper13125 Eclipse Hängt sich auf, wenn ich SimpelDateFormat drin lasse Allgemeine Java-Themen 2
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
Tiago1234 Warum hängt sich mein Programm auf? Allgemeine Java-Themen 22
C Parsen einer sich updatenden Html mithilfe von jsoup Allgemeine Java-Themen 4
Kiki01 Häufigster Buchstabe lässt sich nicht ermitteln Allgemeine Java-Themen 30
Tobero Wie berechnet man ob zwei Linien sich schneiden? Allgemeine Java-Themen 2
T Projekt baut nicht mehr/lässt sich nicht mehr ausführen Allgemeine Java-Themen 6
Tobero Wie bekomme ich in welchem Quadrat sich eine Position in einem Grid befindet Allgemeine Java-Themen 11
O Jar lässt sich auf bestimmten Pc nicht starten Allgemeine Java-Themen 18
D Anfänger versucht sich an Xtext Allgemeine Java-Themen 0
F Sich automatisch aufrufende Java-Methoden Allgemeine Java-Themen 2
kodela Inhalt eines Arrays ändert sich mysteriös Allgemeine Java-Themen 2
P JavaFX Anwendung beendet sich selbst nur als Jar Allgemeine Java-Themen 40
Drachenbauer Wie finde ich den Aufrufer zu einer Methode, die sich nicht in meinem Projekt befindet? Allgemeine Java-Themen 2
A 2D-Grafik Einfachster Ansatz, um sich wiederholende Figur in einem 2D-Image zu erkennen Allgemeine Java-Themen 1
M String lässt sich nicht Zusammenfügen Allgemeine Java-Themen 10
I Lohnt sich heutzutage der Aufwand einer Portierung für MacOS Allgemeine Java-Themen 8
G Jar lässt sich mit macOS nicht starten Allgemeine Java-Themen 9
H Erste Schritte Ausführbare Dateien lassen sich nicht starten Allgemeine Java-Themen 5
L Excel Datei löscht sich selbst im Programm - Java Allgemeine Java-Themen 3
K OOP Daten addieren sich bei GUI-Eingabe Allgemeine Java-Themen 10
K ursprüngliche ArrayList ändert sich bei Übergabe in Methode Allgemeine Java-Themen 18
N Quicksort Programm hängt sich auf Allgemeine Java-Themen 6
S Compiler-Fehler Programm verhält sich in Eclipse anders Allgemeine Java-Themen 1
G Beendet sich der Thread selbst?! Allgemeine Java-Themen 3
S Compiler-Fehler IntelliJ Projektdatei lässt sich nicht erstellen. Allgemeine Java-Themen 15
J Bilder lassen sich nicht importieren Allgemeine Java-Themen 3
E GUI.jfm lässt sich nicht mehr öffnen Allgemeine Java-Themen 1
H Kennt sich jemand mit Eclipse und dem Thema Jar-File aus ? Allgemeine Java-Themen 6
S Programm hängt sich manchmal (selten) auf Allgemeine Java-Themen 9
D System.arraycopy verhält sich seltsam Allgemeine Java-Themen 1
C Threads Methode verhält sich merkwürdig Allgemeine Java-Themen 18
D Best Practice Gesamten Bildschirminhalt auslesen und Email schicken sobald kein Pixel sich ändert Allgemeine Java-Themen 11
K jar-Datei lässt sich unter Windows nicht verwenden Allgemeine Java-Themen 3
X Sich wiederholende substrings finden Allgemeine Java-Themen 6
P Input/Output Inputstream verhält sich verschieden Allgemeine Java-Themen 9
T Minimax/Alphabeta Algorithmus hängt sich auf (?) Allgemeine Java-Themen 2
Tausendsassa Threads Einen Thread sich selbst schließen lassen Allgemeine Java-Themen 17
K Java installiert sich nicht ganz Allgemeine Java-Themen 15
E Anwendung verhält sich unter Mac anders als Unter Windows. Allgemeine Java-Themen 4
L Jar lässt sich nicht öffnen Allgemeine Java-Themen 12
T BufferedImage verändert sich beim Einlsesen Allgemeine Java-Themen 1
Z Eclipse hängt sich alle paar Sekunden auf (Keine Rückmeldung). Allgemeine Java-Themen 4
L Liste führt sich nicht weiter Allgemeine Java-Themen 5
C .jar File lässt sich nur über Konsole öffnen Allgemeine Java-Themen 1
F Wert ändert sich nicht Allgemeine Java-Themen 12
T Nach Java Update: Jar Datein öffnen sich nicht mehr mit doppelklick Allgemeine Java-Themen 3
M Programm startet sich selbst neu, alte Logfiles bleiben gesperrt Allgemeine Java-Themen 2
J String Variable verändert sich plötzlich Allgemeine Java-Themen 8
K Java lässt sich nicht Installieren Windows7Ultimate 64Bit Allgemeine Java-Themen 1
F JTable mit Zellen die sich durch andere Eingaben füllen Allgemeine Java-Themen 1
E Liste löscht sich selbstständig Allgemeine Java-Themen 5
I JPanel soll sich dem JFrame anpassen Allgemeine Java-Themen 1
ruutaiokwu datenstruktur welche sich "im kreis" dreht Allgemeine Java-Themen 26
D swingset3.jnlp lässt sich nicht ausführen Allgemeine Java-Themen 2
L Prog läuft in der IDE, hängt sich aber am Mac auf Allgemeine Java-Themen 0
F Spiel lässt sich nicht aus GUI starten Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben