0
我有一個小程序,並從小程序在Windows上啓動一些進程。 當我從另一個代碼(測試)開始這個過程時,這段代碼工作正常,進程從rt.exec()運行到proc.destroy()。當我使用html調用applet - 進程每次只運行5秒(!!!),然後只是活着,但對proc.destroy()不起作用。這對我來說真的很有趣(小程序中的新手)。我想,這個問題是由AccessController引起的。請幫我解決這個問題(運行過程通常超過5秒鐘)!提前致謝。AccessController小程序問題
P.S.我使用Windows,中等Java安全手柄和小程序是自簽名的。它要求我'允許',小程序的作品。
下面的代碼:
public String startRecording(final String filename) throws IOException {
try {
return (String) AccessController
.doPrivileged(new PrivilegedAction<String>() {
public String run() {
try {
proc = Runtime
.getRuntime()
.exec(cmd + filename + "." + config.getFormat());
//proc.waitFor();
return "Ffmpeg process started";
} catch (Exception e) {
// TODO Auto-generated catch block
return e.getMessage();
}
}
});
} catch (Exception e) {
return e.getMessage();
}
}
而停止方法這裏
public void stopRecording() {
proc.destroy();
}
編輯1: 這是FFmpeg的過程,它記錄桌面視頻,並將其寫入到文件,也許AccessController的塊訪問到文件系統。
鑑於「文件名」可能是任何惡意的東西,看起來並不安全。/LiveConnect和小程序活動完成後五秒鐘停止嗎?聽起來像是PlugIn清理失控進程。因此,保持小程序運行(並確定文件名)。 –
我瞭解文件名。我真的不知道是小程序運行,如何檢查它?過程還活着,但不起作用。 – user2171669
如果我通過Windows命令提示符啓動進程,我的進程將保持運行狀態。這是瘋狂的,幫助我! – user2171669