%AppData% Variable für einen Prozess setzen

I

Ikaron

Gast
Hallo, da mir hier schon einmal so lieb geholfen wurde, und ich (wiedermal...) ein Problem hatte, dachte ich mir: Poste doch hier!
Naja. Diesmal geht es darum, die %AppData%-Variable für einen gewissen Prozess zu setzen. So wie bei .bat Datein das
set APPDATA=%CD%
zum Beispiel. Geht das in Java auch irgendwie? Ich hab schon eine Prozess-Variable, allerdings hab ich in Google noch nicht gefunden, wie das gehen soll... Danke im Voraus,
Ikaron
 

Andi_CH

Top Contributor
Wann soll die denn gesetzt werden? Wenn der Prozess schon läuft ist es zu spät:

Ist es eine Möglichkeit die in einem .bat file zu setzen und dann, aus demselben bat-File, den Prozess zu starten?

Der Prozess kann die sich auch selbst setzen und den Wert z.B. über Aufrufparamter erhalten.
 
I

Ikaron

Gast
Wann soll die denn gesetzt werden? Wenn der Prozess schon läuft ist es zu spät:

Ist es eine Möglichkeit die in einem .bat file zu setzen und dann, aus demselben bat-File, den Prozess zu starten?

Der Prozess kann die sich auch selbst setzen und den Wert z.B. über Aufrufparamter erhalten.

Genau das meinte ich. Erst setzen, dann starten.
 

Ikaron

Bekanntes Mitglied
Hab mich jetzt mal registriert, es nervt schon, dass man als Gast nichts editieren kann.
Zum Starten des Programms benutze ich:
java -jar Minecraft.exe -Xmx4096M -Xms4096M NAME PASSWORT
 
G

Gastredner

Gast
Erstelle dein Process-Objekt über einen ProcessBuilder, dabei kannst du auch die Umgebungsvariablen für den Prozess festlegen. Die Doku beschreibt dies recht ausführlich.
 

thE_29

Top Contributor
Was auch gehen würde:

Java:
try{
			File f = File.createTempFile("blabla", ".bat");
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f)));
			bw.write("set appdata=blablabla");
			bw.newLine();
			bw.write("blablub.exe");
			bw.newLine();
			bw.close();

			f.setExecutable(true);
			//wenn das nicht funktioniert, das untere probieren
			Runtime.getRuntime().exec(f.getAbsolutePath());
			//oder
			Runtime.getRuntime().exec("cmd /c \""+ f.getAbsolutePath() + "\"");
			f.deleteOnExit();
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
		}

Hast halt ne bat-Temp Datei und diese setzt und ruft die exe auf..
 

thE_29

Top Contributor
Warum?
Wenn das ganze von einem Java-Programm aus gemacht werden soll, dann geht es so auch und geht zu 100% korrekt ;)

Außerdem, habe ich schon in nem anderen Beispiel/Thema gezeigt, das Runtime.exec(String commands[]); ziemlich oft ziemlich viel S******e baut.. (und ich habe mich vor 3-4 Jahren genug damit geärgert..)

Hingegen ist das bei einer Bat/SH-Datei gegeben, wie das funktioniert und abläuft..

Habe ich vor 3-4 Jahren überall so eingesetzt, weil wir ziemlich viele Übergabeparameter hatten und da ist Java-Runtime (überhaupt unter Linux) ziemlich oft ausgestiegen, hats nicht aufgerufen oder mit zuwenig Parametern..

Unter Linux erstellt man halt ne .sh Datei...
 

Ikaron

Bekanntes Mitglied
Jetzt schreibt er: I/O Exception
Hab's nochmal in ner .bat getestet, da geht es, hier schreibt er:
Java:
Cannot run program "set": CreateProcess error=2, Das System kann die angegebene Datei nicht finden
java.io.IOException: Cannot run program "set": CreateProcess error=2, Das System kann die angegebene Datei nicht finden
 
Zuletzt bearbeitet:

thE_29

Top Contributor
Unter Win XP eigentlich schon ;)

Weil es da ja C:\dokumente und...

Und dann braucht man für das Leerzeichen ein " "
 

Ikaron

Bekanntes Mitglied
Unter Win XP eigentlich schon ;)

Weil es da ja C:\dokumente und...

Und dann braucht man für das Leerzeichen ein " "

Ich füg das mal ein, aber dass er "set" nicht findet hat ja nichts damit zu tun, oder? ;)
Okey, ich bin dumm. Ich hab das exec("cmd <- das CMD"); vergessen xD

Okey, kein Fehler mehr, aber er benutzt immer noch den Standard AppData-Ordner o_O

Das ist mein Code zum Starten:
Java:
Runtime.getRuntime().exec(
    new String[] {
    System.getProperty("java.home") + "/bin/java.exe",
    "-Xmx" + RAM + "M",
    "-Xms" + RAM + "M",
    "-jar",
    new File(getClass().getResource("McSwitcher.class").getPath().replace("%20", " ").substring(6)).getParentFile().getParent() + "/Minecraft.exe",
    name, 
    pass });
 
Zuletzt bearbeitet:

thE_29

Top Contributor
Naja, habe gerade 2 Test.bat Dateien gemacht..

test.bat:
set appdata=blub
test2.bat

test2.bat:

Rufe ich test.bat auf, so sieht so die Ausgabe aus:

D:\TEMP>test

D:\TEMP>set appdata=blub

D:\TEMP>test2.bat

D:\TEMP>echo blub
blub

Sollte also funktionieren!

Problem wird eher sein, dass das Programm was du nutzt nochmals drauf zugreifen wird (eventuell registry) und dann wirds von anderer Stelle neu gelesen..

Gibt es schon "setx" unter XP?
Du müsstest das IMHO mit setx umsetzen, aber NACHHER wieder FIX auf das alte setzen, sonst hast du appdata zerstört...
 

Ikaron

Bekanntes Mitglied
Naja, habe gerade 2 Test.bat Dateien gemacht..

test.bat:


test2.bat:


Rufe ich test.bat auf, so sieht so die Ausgabe aus:



Sollte also funktionieren!

Problem wird eher sein, dass das Programm was du nutzt nochmals drauf zugreifen wird (eventuell registry) und dann wirds von anderer Stelle neu gelesen..

Gibt es schon "setx" unter XP?
Du müsstest das IMHO mit setx umsetzen, aber NACHHER wieder FIX auf das alte setzen, sonst hast du appdata zerstört...

Das mit setX is mir etwas zu gefährlich :p
Ginge sowas?
Java:
Runtime.getRuntime().exec(
    new String[] {
    "cmd", 
    "java",
    "-Xmx" + RAM + "M",
    "-Xms" + RAM + "M",
    "-jar",
    new File(getClass().getResource("McSwitcher.class").getPath().replace("%20", " ").substring(6)).getParentFile().getParent() + "/Minecraft.exe",
    name, 
    pass });

Hab's probiert, geht, aber nicht mit custom appdata.
 
Zuletzt bearbeitet:

thE_29

Top Contributor
Da Minecraft ja ne exe ist, stellt sich überhaupt mal die Frage, welche Parameter weitergereicht werden, falls das überhaupt bei einem geschieht..

Und was du da mit dem new File bezwecken willst, ist mir auch nicht ganz klar und wozu Appdata umsetzen, wenn es um mehr RAM geht?!
 

Ikaron

Bekanntes Mitglied
Da Minecraft ja ne exe ist, stellt sich überhaupt mal die Frage, welche Parameter weitergereicht werden, falls das überhaupt bei einem geschieht..

Und was du da mit dem new File bezwecken willst, ist mir auch nicht ganz klar und wozu Appdata umsetzen, wenn es um mehr RAM geht?!

Es geht um das AppData. Ram ist ja schon drinne, und geht auch. Autologin auch. In ner .bat file geht java -jar Minecraft.exe NAME PW
Name & Pw gehn an Minecraft. Das File benutze ich, um den Pfad von Minecraft zu ermitteln.
 

thE_29

Top Contributor
Ok, dann funktioniert eigentlich alles bis auf das appdata umsetzen..

Kann man bei dem Minecraft nicht einstellen, dass er nicht appdata nutzen solle?
 

Ikaron

Bekanntes Mitglied
Hier:
Java:
ProcessBuilder pb = new ProcessBuilder(new String[] {
        System.getProperty("java.home") + "/bin/java.exe",
        "-Xmx" + RAM + "M", "-Xms" + RAM + "M", "-jar",
        txtMcLauncherLauncher.getText(), name, pass });
Map<String, String> env = pb.environment();
env.put("APPDATA", appData);
pb.directory(new File(appData));
pb.start();
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JDK installieren Kann man die Ordner in C:\Users\*\AppData\LocalLow\Sun\Java\.... löschen? Allgemeine Java-Themen 3
W Variable Initialisierung mit dem Ergebnis einer Regex Allgemeine Java-Themen 1
A Clean Code: Variable vs. Methode Allgemeine Java-Themen 8
J Wo kommt der Wert der Variable her ? Allgemeine Java-Themen 6
E Variablen Nach Übergabe einer Variable den Constructor aufrufen Allgemeine Java-Themen 16
H lokale Variable bei Optional verwenden Allgemeine Java-Themen 11
A Variable in if initialisieren Allgemeine Java-Themen 23
S Variable als Objekt Name Allgemeine Java-Themen 3
D "Automatisierte", variable verschachtele for-Schleife Allgemeine Java-Themen 9
T statische Variable und nicht-statische Methode Allgemeine Java-Themen 2
P Variable wird in for - loop nicht richtig hochgezählt Allgemeine Java-Themen 11
A Variablen non-static variable cannot be referenced from a static content Allgemeine Java-Themen 4
A Variable, welche Exeption wirft als "Global" deklarieren Allgemeine Java-Themen 13
A Scanner Variable Klassenimtern deklarieren Allgemeine Java-Themen 12
L Variablen Variable nicht aktualisiert Allgemeine Java-Themen 3
denny86 NetBeans Ordnernamen rekursiv auslesen und in Variable verarbeiten Allgemeine Java-Themen 38
R Variable durch mehrere Methoden ändern und nutzen Allgemeine Java-Themen 17
P Static Variable -> unterschiedliche Werte? Allgemeine Java-Themen 1
C Abstrakte Klasse, lokale Variable-Problem Allgemeine Java-Themen 1
T AWT AWT-EventQueue-0 Null_Pointer_Exception durch Variable Allgemeine Java-Themen 12
M Variable ändern bei jedem Schleifendurchlauf Allgemeine Java-Themen 32
F Wert in Variable schreiben, wenn diese gerade genutzt wird Allgemeine Java-Themen 10
P Prüfen ob es Variable mit Namen gibt der als String übergeben wird Allgemeine Java-Themen 7
S JFrame Variable mitgeben Allgemeine Java-Themen 5
M Variable außerhalb Klasse definierbar? Allgemeine Java-Themen 2
X Bild -> lokale Variable -> DB -> lokale Variable Allgemeine Java-Themen 3
F Aktuelle Variable Allgemeine Java-Themen 2
J String Variable verändert sich plötzlich Allgemeine Java-Themen 8
J private static final String variable Allgemeine Java-Themen 8
A Long variable wird negativ??? Allgemeine Java-Themen 1
reibi Classpath Classpath Variable beim Tomcat Allgemeine Java-Themen 2
M Zeiger auf statische Variable Allgemeine Java-Themen 1
H Klassennamen zum Aufruf eines statischen Feldes aus Variable holen Allgemeine Java-Themen 4
F Variable übergeben?! Allgemeine Java-Themen 2
L Variable auch in der function verfügbar machen? Allgemeine Java-Themen 4
M Collections Typ Variable einer generischen Collection ? Allgemeine Java-Themen 4
P Variablen Variable von void im ActionListener verwenden Allgemeine Java-Themen 3
M Parallele Programmierung: volatile Variable nimmt ungewöhnlichen Wert an Allgemeine Java-Themen 3
iB0T Variable Wert ausrauchen Allgemeine Java-Themen 3
T Variablen Variable wird als nicht genutzt angezeigt Allgemeine Java-Themen 8
S Datentypen Eine Variable von String zu Int ändern Allgemeine Java-Themen 5
Hoppelmann "Variable" in String erkennen Allgemeine Java-Themen 2
B Variable class in java.lang.Object Allgemeine Java-Themen 11
O Variablen Originalname einer übergebenen Variable prüfen Allgemeine Java-Themen 9
X Windows-Environment-Variable per jRegistryKey anpassen Allgemeine Java-Themen 6
P Variable in Array stellen Allgemeine Java-Themen 11
M Arraynamen durch Variable festlegen lassen Allgemeine Java-Themen 5
J Anderem Thread Variable mitgeben Allgemeine Java-Themen 2
nrg Auszulagernder Part, der aber variable Methode/Klasse aufruft Allgemeine Java-Themen 7
G Variablen Variable extern speichern - wie? Allgemeine Java-Themen 9
M Variablen Wie Variable verfügbar machen? Allgemeine Java-Themen 16
A variable aus einer anderen klasse verändern Allgemeine Java-Themen 5
G Variable Methodenwahl Allgemeine Java-Themen 11
C JFormattedTextField Inhalt einer Variable zuweisen Allgemeine Java-Themen 11
C Variablen Variable einer Klasse in einer anderen Klasse Nutzen Allgemeine Java-Themen 8
B Umgebungsvariable Variable wird nicht übernommen Allgemeine Java-Themen 4
N variable Anzahl von Objektinstanzen zur Laufzeit erstellen Allgemeine Java-Themen 4
C Environment Variable in Pfad -> Datei öffnen Allgemeine Java-Themen 5
Q Variable aus Schleife/Switch benutzen Allgemeine Java-Themen 7
algorismi int-variable Value Change event Allgemeine Java-Themen 3
E Variable dynamisch ausgeben Allgemeine Java-Themen 5
trash super() mit Variable bestücken Allgemeine Java-Themen 3
X Cannot refer to a non-final variable settings inside an inner class defined in a different method Allgemeine Java-Themen 4
A Variable Parameterinhalte an einen Query übergeben? Allgemeine Java-Themen 3
B static Variable / Unterklasse Allgemeine Java-Themen 2
J Was ist schneller? Neue Variable oder neuer Wert speziell int Allgemeine Java-Themen 3
S Innere Klasse: Zugriff auf äußere Variable Allgemeine Java-Themen 5
Semox Fehler - Zuweisung aus BufferedReader an Variable Allgemeine Java-Themen 3
Daniel_L RegEx - variable Vorkommen ersetzen? Allgemeine Java-Themen 5
P Unicode-Sequenz (u1234) in Variable speichern und ausgeben Allgemeine Java-Themen 6
G auf variable in anderer class zugreifen Allgemeine Java-Themen 2
G Variable global nutzen Allgemeine Java-Themen 4
V Variable vom Typ String zum Typen "Message" konve Allgemeine Java-Themen 2
J in einer static Variable Wert ändern Allgemeine Java-Themen 6
M Try-Catch: wie wird Variable bei Exception initialisiert? Allgemeine Java-Themen 8
G Speicherverbrauch einer Variable Allgemeine Java-Themen 2
C ArrayList mit Variable im Namen Allgemeine Java-Themen 16
T JNI Referenz auf Variable in Java? Allgemeine Java-Themen 2
G Überprüfen, ob Variable ein Array ist? Allgemeine Java-Themen 5
R Member-Variable erzwingen Allgemeine Java-Themen 17
D LinkedList anhand einer long-Variable der Objekte sortieren Allgemeine Java-Themen 5
M Zugriff auf Objekt, Name in Variable Allgemeine Java-Themen 3
G Problem mit einer Variable Allgemeine Java-Themen 3
O Future Variable Allgemeine Java-Themen 4
M variable übergeben NICHT KOPIEREN Allgemeine Java-Themen 12
loadbrain KeyEvent mit Variable verknüpfen Allgemeine Java-Themen 4
M Prüfen ob Variable vorhanden / initalisiert ist Allgemeine Java-Themen 4
G Variable wird ignoriert - warum ? Allgemeine Java-Themen 36
L ctrl-z wird nicht in Variable gespeichert Allgemeine Java-Themen 4
G Variable Anzahl JTextfleder Allgemeine Java-Themen 3
R Wenn Variable = wat ist Allgemeine Java-Themen 7
H Zugriff auf statische Variable synchronisieren Allgemeine Java-Themen 4
H globale Variable wird nicht überall erkannt Allgemeine Java-Themen 3
G Zugriff auf Variable in abgeleiteter Klasse Allgemeine Java-Themen 6
R Eine Variable an eine Methode mit Array übergeben Allgemeine Java-Themen 7
E Variable in einer Methode Allgemeine Java-Themen 13
O Environment Variable Setzen Allgemeine Java-Themen 2
G Referenz auf Variable! Allgemeine Java-Themen 3
C Variable aus einer Methode einlesen in einer verarbeiten und Allgemeine Java-Themen 6
G 1.5er String.format() -> variable Feldlaenge? Allgemeine Java-Themen 5

Ähnliche Java Themen


Oben