我有一些代码使用Runtime.exec()运行外部.jar(构建为IzPack安装程序).
如果我从命令行运行这个external.jar,如下所示:
java -jar external.jar
Run Code Online (Sandbox Code Playgroud)
然后,在应用程序完成之前,命令提示符不会返回控制.但是,如果我从某个java类中运行external.jar,则使用:
Process p = Runtime.getRuntime().exec("java -jar external.jar");
int exitCode = p.waitFor();
System.out.println("Process p returned: " + exitCode);
Run Code Online (Sandbox Code Playgroud)
然后p几乎立即返回成功代码0,尽管external.jar尚未完成执行(我也通过ProcessBuilder外部文件执行路径尝试了这一点).
为什么它等待从命令行返回,但是从另一个java程序执行时却没有?
我还设置了3个罐子,A,B和C,其中A调用B调用C(使用Runtime.exec()),其中C Thread.sleeps为10秒,作为一个简单的测试,并且如预期的那样,A直到10秒后才返回它运行.
我认为这可能是external.jar的某种线程问题,其中执行是从一件事移交给另一件事,但鉴于它直接从命令行工作,我希望看到相同的行为(可能是天真的)从另一个java程序中调用时.
我已经在Windows和Ubuntu上用Java 6测试了这个.
谢谢!
这似乎是一个可疑的直接的问题,但已经StackOverflow的搜索和谷歌使用惯用的招数(getBoundingClientRect,clientWidth,offsetWidth)我还没有找到答案.
简单地说,有没有办法找到一个元素的宽度/高度,不仅包括边框,填充等,还有阴影?
请参阅:jsfiddle,了解一切如何返回没有阴影的元素宽度的示例.
编辑:理想情况下,我不想调查阴影的CSS属性并解析尺寸,但也许这是唯一的方法.
我试图让 ffmpeg (或 avconv)采用某种表示 rtp 转储的文件作为输入源并将其输出到视频。
ffmpeg -i rtp://<ip_addr>:<port> <outputfile>在我指定类似或 之类的内容ffmpeg -i sdp.sdp <outputfile>,然后流式传输(使用rtpplay来自 an rtpdump)到该地址/端口的情况下,我可以让它正常工作。但是,我想将实际rtpdump本身作为输入,或者表示可以作为文件(而不是流式传输)输入的 rtp 或 rtp 有效负载的东西。
到目前为止,rtpdump我尝试输入到 ffmpeg 的任何类型似乎都不起作用(通常抱怨无法找到我实际未使用的有效负载类型的编解码器参数,这让我质疑输入文件的格式) 。
有人知道有办法做到这一点吗?我不太关心输入本身rtpdump,但从wiresharkpcap 派生的东西会很好。
谢谢