`
lichen0921
  • 浏览: 81195 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Java调用外部程序

阅读更多
Java web开发调用外部ffmpeg或mencoder转码...
遇到的问题是ffmpeg或mencoder进程阻塞, 需要停掉tomcat--javaw.exe进程之后才能执行ffmpeg.exe或mencoder.exe
问题的原因: getErrorStreamgetInputStream 缓冲区没有清空
解决的方法: 同时清空getErrorStream getInputStream 的缓冲区
代码如下:
       ProcessBuilder builder = new ProcessBuilder();
       builder.command(commend);
       Process process = builder.start();
      final InputStream is1 = process.getInputStream();
      new Thread(new Runnable() {
             public void run() {
                     BufferedReader br = new BufferedReader(new InputStreamReader(is1));    
            try {
              while(br.readLine() != null) ;
             } catch (IOException e) {
               e.printStackTrace();
             }
             }
       }).start(); // 启动单独的线程来清空process.getInputStream()的缓冲区
       InputStream is2 = process.getErrorStream();
       BufferedReader br2 = new BufferedReader(new InputStreamReader(is2));    
       StringBuilder buf = new StringBuilder(); // 保存输出结果流
       String line = null;
      while((line = br2.readLine()) != null) buf.append(line);
分享到:
评论
1 楼 sblig 2011-11-24  
ffmpeg.exe 放到tomcat下面那个目录,是工程目录,还是tomcat自己的目录
我的java web 找不到我的外部程序

相关推荐

    Java调用外部程序命令

    ### Java调用外部程序命令详解 #### 一、引言 在进行系统集成或自动化脚本编写时,经常需要从Java程序中调用外部程序或命令。这种需求常见于多种场景,例如远程服务管理、批处理操作等。本文将详细介绍如何使用...

    用JAVA调用外部程序并截出程序运行结果

    本文将详细讲解如何使用Java调用外部程序以及如何捕获并处理程序的输出。 首先,`Runtime.getRuntime().exec()`方法是Java中最基础的调用外部程序的方式。它允许我们执行系统命令,并返回一个`Process`对象,通过该...

    用java 调用外部程序

    这篇博文“用java 调用外部程序”可能详细介绍了如何在Java环境中实现这一功能。虽然描述部分为空,但我们可以基于这个主题展开讨论。 在Java中,调用外部程序的主要方法是使用`Runtime`类或`ProcessBuilder`类。`...

    java中两种方式调用其他.exe可执行程序

    Java 中两种方式调用其他.exe 可执行程序 Java 是一种广泛应用于企业级应用开发的编程语言,可以调用其他.exe 可执行程序,实现一些特殊的功能。在 Java 中有两种方式可以调用其他.exe 可执行程序,即使用 `Desktop...

    java调用外部jar文件

    总结来说,Java调用外部jar文件涉及以下几个关键点: 1. 理解Java类加载机制,包括系统类加载器和自定义类加载器。 2. 创建自定义类加载器,重写`findClass()`方法,从jar文件中读取并加载类。 3. 使用加载的类进行...

    java程序调用bat文件,执行oracel数据库备份

    首先,我们需要理解Java调用外部程序的基本原理。在Java中,我们可以使用`Runtime`类或`ProcessBuilder`类来执行操作系统级别的命令,例如运行bat文件。以下是一个简单的示例,展示如何使用`Runtime.getRuntime()....

    Java调用应用程序和Dos中的命令

    在Java编程中,有时候我们需要执行一些操作系统级别的任务,例如启动一个外部程序、执行一些系统命令等。这通常可以通过Java的`Runtime`类实现,尤其是通过`Runtime.exec()`方法来创建一个新的进程。本文将详细介绍...

    Java调用Python的jar包

    总结起来,Java调用Python的jar包涉及到的技术包括但不限于:Java调用外部程序的API、Jython(对于Python 2.7的支持)、Py4J(对于Python 3.x的互操作性),以及如何在Java和Python之间有效地传递数据和控制流程。...

    java 调用lame.exe 将 wav 进行MP3压缩的一些问题

    1. **Java调用外部程序**: 在Java中,我们可以通过`Runtime.getRuntime().exec()`或`ProcessBuilder`来调用操作系统级别的命令。例如,要调用`lame.exe`,我们需要构建一个包含所有必要参数的命令字符串,然后执行...

    使用JAVA调用应用程序.pdf

    "使用JAVA调用应用程序.pdf" 在本文中,我们将探讨使用 Java 调用应用程序的方法和技术。Java 是一种广泛使用的编程语言,具有强大的功能和灵活性,广泛应用于web开发、安卓应用开发、桌面应用开发等领域。通过 ...

    java调用外部文件

    此外,为了安全性和资源管理,避免内存泄漏,最好在调用外部程序后关闭相关流并监控进程状态。这可以通过`Process`对象的`waitFor()`方法实现,等待外部程序完成执行。 总的来说,Java提供了一定的灵活性来调用和...

    调用外部程序.rar

    在Java中,我们可以使用`Runtime.getRuntime().exec()`方法来调用外部程序。这个方法会返回一个`Process`对象,我们可以用它来获取程序的输出流或结束进程。 ```java try { Process process = Runtime....

    java调用

    这不仅有助于理解和掌握Java调用外部程序的基础知识,还能实际应用于各种场景中,比如自动化脚本、数据分析等。 总结而言,在Java中调用外部exe文件是一项实用而强大的技术。通过掌握基本的API和流程,开发人员可以...

    java调用Windows应用程序

    3. **安全性考量**:调用外部程序可能会带来潜在的安全风险,尤其是对于不可信的源文件,需要进行严格的验证和限制。 #### 五、总结 通过上述介绍,我们可以看到Java程序调用Windows应用程序是一个非常实用且功能...

    java调用c c++程序实例

    首先,Java调用C/C++程序的主要技术是通过Java Native Interface (JNI)。JNI是Java平台的一部分,允许Java代码和其他语言写的代码进行交互。它为Java程序员提供了一种方式来编写本地方法,这些本地方法可以调用由C/...

    java调用json参数的webservice

    在探讨Java调用带有JSON参数的WebService之前,我们首先需要了解几个关键的技术概念:Java、JSON以及WebService。 Java是一种广泛使用的编程语言,它具有面向对象、跨平台、多线程以及健壮性等特点。Java在企业级...

    java中调用控制台程序

    调用外部程序后,记得关闭相关的输入输出流,并调用`destroy()`方法结束子进程,以避免资源泄露。 6. **异常处理**: 执行外部命令可能会抛出IOException,需要捕获并处理。 以上就是关于"java中调用控制台程序...

    个人亲测oracle触发器调用java程序

    Oracle触发器调用Java程序 Oracle触发器是Oracle数据库中的一种机制,可以在数据库中执行特定的操作。在本文中,我们将介绍如何使用Oracle触发器调用Java程序。 一、加载Java程序 首先,我们需要将Java程序加载到...

    Java 调用 SAP RFC 案例

    以下是一个简单的Java调用SAP RFC的示例代码片段: ```java import com.sap.conn.jco.*; public class SapRfcExample { public static void main(String[] args) { try { JCoDestination destination = ...

    java调用webservice程序

    Java调用WebService程序是开发中常见的一种跨平台通信方式,主要通过SOAP(Simple Object Access Protocol)协议实现。本文将深入探讨如何使用Java来调用WebService接口,并涉及所需的库和步骤。 首先,理解...

Global site tag (gtag.js) - Google Analytics