Java Process' İn Bittiği Anlaşılabilir Mi ?
-
try {
Runtime.getRuntime().exec("C://ozgun/Ki67.exe C://ozgun/Ki67Input.ini");
} catch (Exception ex) {
Log.warn("Ki67.exe couldn' t start : " + ex.getMessage());
}
java da arkaplanda başka bir exe çağırıyorum, bu exe işi bitince kapanıyor, process' ini kaldırıyor. Görev yöneticisinden takip edebiliyorum.
bunu hiç o exe den windows messages ile uğraşmadan, process' in sonlandığını anlayabilir miyim java tarafında ?
-
ProcessBuilder kullanman lazim. ben genelde builder olusturup outputunu dosyalara logluyorum. Job hatasiz calisirsa 0 hata verirse 1 donuyordu galiba.
try { File out = new File("/home/jobs/report_log/" + eventId + "_" + type + "_" + lang + "_logs.out"); ProcessBuilder builder = new ProcessBuilder("java", "-jar", "Job.jar", String.valueOf(jobId), lang); builder.directory(new File(ROOT_FOR_JOB)); builder.redirectError(out); builder.redirectOutput(out); Process process = builder.start(); final int res = process.waitFor(); } catch (Exception e) { e.printStackTrace(); }
edit lanet olsun boyle kod editore.
-
musdawdaf bunu yazdı
ProcessBuilder kullanman lazim. ben genelde builder olusturup outputunu dosyalara logluyorum. Job hatasiz calisirsa 0 hata verirse 1 donuyordu galiba.
try { File out = new File("/home/jobs/report_log/" + eventId + "_" + type + "_" + lang + "_logs.out"); ProcessBuilder builder = new ProcessBuilder("java", "-jar", "Job.jar", String.valueOf(jobId), lang); builder.directory(new File(ROOT_FOR_JOB)); builder.redirectError(out); builder.redirectOutput(out); Process process = builder.start(); final int res = process.waitFor(); } catch (Exception e) { e.printStackTrace(); }
edit lanet olsun boyle kod editore.
hahaha edit efsane :D
sağol hocam, yaptım böyle oldu da. thread' ı block luyor. Ayrı thread de mi run edicez bunu da? Öyle kurtarabilir miyiz?
-
ozgunlu bunu yazdımusdawdaf bunu yazdı
ProcessBuilder kullanman lazim. ben genelde builder olusturup outputunu dosyalara logluyorum. Job hatasiz calisirsa 0 hata verirse 1 donuyordu galiba.
try { File out = new File("/home/jobs/report_log/" + eventId + "_" + type + "_" + lang + "_logs.out"); ProcessBuilder builder = new ProcessBuilder("java", "-jar", "Job.jar", String.valueOf(jobId), lang); builder.directory(new File(ROOT_FOR_JOB)); builder.redirectError(out); builder.redirectOutput(out); Process process = builder.start(); final int res = process.waitFor(); } catch (Exception e) { e.printStackTrace(); }
edit lanet olsun boyle kod editore.
hahaha edit efsane :D
sağol hocam, yaptım böyle oldu da. thread' ı block luyor. Ayrı thread de mi run edicez bunu da? Öyle kurtarabilir miyiz?
Ayrı bir task yazıp orada run'layım daha sonra observer pattern ile sonucu takip edebilirsin hocam.