Zum Inhalt springen

Befehle des OS ausführen


Empfohlene Beiträge

Geschrieben

ja entweter mit der klasse system.* oder mit der abstrakten klasse runtime.getruntime ich weiß jetzt net ob dir das was hilft wenn ja dann is es gut wenn net dann schad

Geschrieben

Willst du etwa so was schreckliches machen, wie auf Windows-DLLs von einem Java-Programm aus zuzugreifen?

Wenn ja, dann erst einmal viel Spass dabei....

Aber du hast Glück: es gibt ein Tool namens JIntegra. Das kann DLLs auslesen und in Java-Klassen umwandeln. Diese Klassen kann man wie alle anderen Java-Klassen auch verwenden. Allerdings leiten diese Klassen die Aufrufe irgendwie (frag mich nicht wie...) an die DLLs weiter.

ciao

Snowghost

  • 1 Monat später...
Geschrieben

public boolean processCmd(String cmd)

    {

	int rc = -1;

	StringBuffer buf = new StringBuffer();

	try

	{

	    String line;

	    Process pr = Runtime.getRuntime().exec(cmd);

	    InputStreamReader isr = new InputStreamReader(pr.getInputStream());

	    BufferedReader input  = new BufferedReader(isr);

	    pr.waitFor();

	    rc = pr.exitValue();

	    while (true)

	    {

		line = input.readLine();

		if (line == null)

		{

		    break;

		}

		buf.append(line + "\n");

	    }

	    input.close();

	}

	catch (Exception e)

	{

	    log.debug(e.getLocalizedMessage());

	}

	return rc;

    }

  • 1 Monat später...
Geschrieben

Bei Befehlen, die eine Ausgabezeile haben funktioniert es. Wenn ich aber mehrzeilige Ausgaben habe, oder einen etwas "anspruchsvolleren" Befehl (z.b. echo hallo) bekomme ich Fehler beim Erzeugen des Prozesses:

java.io.IOException: CreateProcess: echo hallo error=2

at java.lang.Win32Process.create(Native Method)

at java.lang.Win32Process.<init>(Unknown Source)

at java.lang.Runtime.execInternal(Native Method)

at java.lang.Runtime.exec(Unknown Source)

at java.lang.Runtime.exec(Unknown Source)

at java.lang.Runtime.exec(Unknown Source)

at java.lang.Runtime.exec(Unknown Source)

at test.test1.<init>(test1.java:36)

at test.test1.main(test1.java:57)

java.io.IOException: CreateProcess: dir error=2

at java.lang.Win32Process.create(Native Method)

at java.lang.Win32Process.<init>(Unknown Source)

at java.lang.Runtime.execInternal(Native Method)

at java.lang.Runtime.exec(Unknown Source)

at java.lang.Runtime.exec(Unknown Source)

at java.lang.Runtime.exec(Unknown Source)

at java.lang.Runtime.exec(Unknown Source)

at test.test1.<init>(test1.java:36)

at test.test1.main(test1.java:57)

Wie kann ich diesen Fehler verhindern? (-> Ich halte mich an oben angebenes Listing -> ich nutze z.Z. Sun Java SDK 1.4)

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...