【发布时间】:2014-03-22 15:26:21
【问题描述】:
我已经制作了小程序,这是它的 jar 中的文件。
在我的课程中,我调用了ffmpeg.exe,并且我拥有所有特权,例如自签名小程序并通过访问控制器拨打电话。所以我在程序中遇到错误,找不到*my ffmpeg lib*。
这应该很容易问:我应该把我的 ffmpeg.exe 文件放在哪里?
我得到了例外:
Cannot run program "ffmpeg": CreateProcess error=2, ?? ??? ??? ????? ????
代码如下:
public class DtpVideoApplet extends Applet
{
public String startRecording() throws IOException
{
try
{
return(String) AccessController.doPrivileged(new PrivilegedAction<String>()
{
public String run()
{
try
{
Runtime.getRuntime()
.exec("ffmpeg -y -f dshow -i video=\"screen-capture-recorder\" output.flv");
return "Entered";
}
catch (Exception e)
{
// TODO Auto-generated catch block
return e.getMessage();
}
}
});
}
catch (Exception e)
{
return e.getMessage();
}
}
}
【问题讨论】:
-
代码在做什么(发布它),你得到什么异常(发布完整的堆栈跟踪)?
-
感谢您的评论。我更新了我的 Q。如您所见,我只是返回 getMessage(在类路径下定位 ffmpeg lib 时收到此异常)。你能建议我如何获取这个小程序的所有 printstacktrace 吗?
-
我正在执行 cmd 的 cmd 'dir' 并接收 '.../Desktop',所以现在继续前进
-
是的,我的 *exe 应该放在桌面上,但是为什么?如何改变这个?
-
您必须从 jar 中提取 exe 文件并将其复制到硬盘驱动器的某个位置(在临时目录中)。