Ahoj, chtěl bych se Vás zeptat, zda byste mi neuměli poradit s mým problémem s voláním externího programu. Používám Python 2.5.4 (věřím, že kvůli kompatibilitě s Jython 2.5.1) na Windows 7.
Snažím se o spuštění "překladače" "javac.exe": ------------------------------------------------ ... javac = subprocess.Popen(u"C:\\java\\bin\\javac.exe Main.java -d .") javac.communicate() ------------------------------------------------ Zjistil jsem ale, že takto volaný externí program (nebo alepoň "javac.exe") s následným voláním "communicate()" (ale nemusí to být jen volání této metody - může to být jakýkoliv další kód) mi nevypíše na chybový výstup žádné informace (pokud je chyba v "Main.java"), i když při volání ze systémové příkazové řádky se informace vypíší. Dále jsem zjistil, že když můj program skončí ihned po "...subprocess.Popen..." (tedy vynechám "communicate()"), tak se na chybový výstup vypíše, co má. Jenže já tímto samozřejmě nechci končit... Zkoušel jsem i použití funkce "time.sleep()", ale bez úspěchu. Pokud v "Main.java" chyba není, má "javac.exe" vygenerovat soubor "Main.class", jenže chování je podobné... Tedy, pokud se pod voláním "javac.exe" vyskytuje ještě další kód, soubor "Main.class" se vygeneruje až po skončení mého programu. (Ověřeno pomocí "os.path.exists()" i "os.listdir()") Přitom návratový kód je již nastaven... Předem děkuji za pomoc, Radek Holý _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
