siggivara Skrevet 13. desember 2008 Skrevet 13. desember 2008 Jeg har et pythonscript jeg gjerne skulle ha kjørt fra et javaprogram. Jeg skal ikke ha tak i noen verider eller noe, bare kjøre scriptet som om jeg hadde dobbelklikket på det selv.
___ Skrevet 13. desember 2008 Skrevet 13. desember 2008 Jeg har et pythonscript jeg gjerne skulle ha kjørt fra et javaprogram.Jeg skal ikke ha tak i noen verider eller noe, bare kjøre scriptet som om jeg hadde dobbelklikket på det selv. Jython
RavnTM Skrevet 13. desember 2008 Skrevet 13. desember 2008 (endret) Hvis det er bare deg som skal bruke det, så kan du jo bruke dette: Runtime.getRuntime().exec( "python script.pyw", // Filen du skal kjøre null, // Argument listen. Kan være null new File(".") // Så filen blir kjørt fra "current directory" ); Håper det hjalp. Endret 13. desember 2008 av RavnTM
siggivara Skrevet 13. desember 2008 Forfatter Skrevet 13. desember 2008 Runtime.getRuntime().exec( "python script.pyw", // Filen du skal kjøre null, // Argument listen. Kan være null new File(".") // Så filen blir kjørt fra "current directory" ); Takk for svar, men dette fungerte ikke. Det gikk å kompilere, men når jeg kjørte programmet fikk jeg denne meldingen: Exception in thread "main" java.io.IOException: Cannot run program "Sonicwall.py w" (in directory "."): CreateProcess error=193, %1 is not a valid Win32 applicat ion at java.lang.ProcessBuilder.start(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at Ping2.main(Ping2.java:32) Caused by: java.io.IOException: CreateProcess error=193, %1 is not a valid Win32 application at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.<init>(Unknown Source) at java.lang.ProcessImpl.start(Unknown Source) ... 4 more Jeg fant imidlertid ut hvordan man kan gjøre det. Det eneste jeg gjorde var å endre ffra .pyw til .py på pythonscriptet og endre stien i disse kodelinjene: try { Runtime r = Runtime.getRuntime(); Process p = r.exec("cmd /c E:\\Java\\Sonicwall.py"); p.waitFor(); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line = ""; while ((line = br.readLine()) != null) { System.out.println(line); } p.waitFor(); } catch (Exception e) { e.printStackTrace(); } Nå kjører scriptet helt uten problemer.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå