Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[IOException] Win32 Process

0 views
Skip to first unread message

Alex Bischof

unread,
Nov 16, 2002, 6:28:10 PM11/16/02
to
Hallo Ng,

als kleine Spielerei wollte ich eine Python-IDE implementiere und stehe
jetzt vor folgendem Fehler:

fehler bei prozess starten
java.io.IOException: CreateProcess: python.exe tmp.py error=2
at java.lang.Win32Process.create(Native Method)
at java.lang.Win32Process.<init>(Win32Process.java:66)
at java.lang.Runtime.execInternal(Native Method)
at java.lang.Runtime.exec(Runtime.java:551)
at java.lang.Runtime.exec(Runtime.java:418)
at java.lang.Runtime.exec(Runtime.java:361)
at java.lang.Runtime.exec(Runtime.java:325)
at pyde.actionPerformed(pyde.java:108)
at java.awt.MenuItem.processActionEvent(MenuItem.java:531)
at java.awt.MenuItem.processEvent(MenuItem.java:495)
at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:271)
at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:261)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:341)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:131)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:98)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:85

Undzwar tritt die Exception bei folgendem Programmabschnitt auf

try{
makeTempFile(); //legt die tmp.py an
Thread.sleep(500); //verzögerung wegen speichern
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("python.exe tmp.py");
}catch(Exception ee){
System.out.println("fehler bei prozess starten");
ee.printStackTrace();
}

Liegt es vielleicht daran, dass ein von Java aufgerufener Subprozess keinen
weiteren Subprozess(Enkel) aufrufen kann?

Oder liegt es am Pythoncode? Allerdings funktioniert er, wenn ich
ihn(tmp.py) über die Shell aufrufe.

Hier noch schnell der Pythoncode:

import Tkinter
tk = Tkinter.Tk()
Tkinter.mainloop()


Hat jemand eine Idee?

Danke
der alex


Tobias Vogele

unread,
Nov 16, 2002, 10:54:21 AM11/16/02
to
Hallo,

Alex Bischof spoke:

> fehler bei prozess starten
> java.io.IOException: CreateProcess: python.exe tmp.py error=2
> at java.lang.Win32Process.create(Native Method)
> at java.lang.Win32Process.<init>(Win32Process.java:66)

[...]

> Undzwar tritt die Exception bei folgendem Programmabschnitt auf
>
> try{
> makeTempFile(); //legt die tmp.py an
> Thread.sleep(500); //verzögerung wegen

Ich glaube nicht, daß das sleep da nötig ist, wenn Du die Datei nicht gerade
in einem eigenem Thread anlegst. Aber schlimm ist es natürlich nicht (außer
daß man länger warten muß ;-))

> speichern Runtime rt = Runtime.getRuntime();
> Process p = rt.exec("python.exe tmp.py");
> }catch(Exception ee){
> System.out.println("fehler bei prozess starten");
> ee.printStackTrace();
> }
>
> Liegt es vielleicht daran, dass ein von Java aufgerufener Subprozess
> keinen weiteren Subprozess(Enkel) aufrufen kann?

Nein, das glaube ich nicht. Woher ein Prozess aufgerufen wird, ist ja
eigentlich egal, wenn er läuft, läuft er.
Die IOException deutet eher darauf hin, daß er z.B. die Datei "python.exe"
nicht findet, weil sie nicht im Pfad ist.
Funktioniert es auch, wenn Du in der Kommandozeile in das Verzeichnis
wechselst, aus dem Du das Java-programm startest, und dann "python.exe
tmp.py" eingibst?

grüße,

tobi
--
URL: http://www.wartmal.de Email: ne...@wartmal.de

Gott existiert, weil die Mathematik widerspruchsfrei ist,
und der Teufel existiert, weil wir das nicht beweisen können.
Andre Weil


Alex Bischof

unread,
Nov 16, 2002, 8:07:55 PM11/16/02
to
Hallo Tobias,

> > Liegt es vielleicht daran, dass ein von Java aufgerufener Subprozess
> > keinen weiteren Subprozess(Enkel) aufrufen kann?
>
> Nein, das glaube ich nicht. Woher ein Prozess aufgerufen wird, ist ja
> eigentlich egal, wenn er läuft, läuft er.
> Die IOException deutet eher darauf hin, daß er z.B. die Datei "python.exe"
> nicht findet, weil sie nicht im Pfad ist.
> Funktioniert es auch, wenn Du in der Kommandozeile in das Verzeichnis
> wechselst, aus dem Du das Java-programm startest, und dann "python.exe
> tmp.py" eingibst?

Genau das war es! --> Sch... IDE.

Mach's gut und Danke nochmal
der alex


0 new messages