【问题标题】:Red5 + Java + Windows installation + ant compilation : it works, but why?Red5 + Java + Windows 安装 + ant 编译:可以,但是为什么呢?
【发布时间】:2010-01-16 17:34:31
【问题描述】:

我对 java java Server 世界都是全新的...... 但我对面向对象编程有很好的了解(17 年)。 我的问题是:

为什么我必须调用 ant 才能使其工作(请参阅稍后,如果您不感兴趣,请跳过我的问题 ^_^ )?

这就是我想要的:创建一个可以进行视频会议的简单应用程序(= 服务器接收一个客户端视频流并将其分派给 X 客户端)。 我希望它是免费的(Adobe Server 大约需要 10000 美元)。 我找到的唯一解决方案是 Red5(见 there

我已经下载并安装了 0.7 版本。 以下是我成功编译 Red5 的 Java 应用程序的步骤:

  1. 下载并安装 (Windows XP) 最新版本 (0.7)
  2. 在 安装文件夹中的一些文件 在 0.7 安装中忘记了 (与 v0.6 版本比较,猜猜是哪一个) (ivy.xml 如果我记得的话)
  3. 进入[Red5 path]\webapps 文件夹。复制 / 粘贴 tutorial 文件夹。
  4. 将文件夹重命名为myapp
  5. 编辑该文件夹中的所有xml文件,搜索字符串tutorial 并将其重命名为myapp
  6. 这是我所做的,没有工作: 用 javac 编译:
    javac -classpath "[Red5 path]\red5.jar" -d "[Red5 path]\webapps\myapp\WEB-INF\classes" Application.java javac -classpath "[Red5 path]\red5.jar" -d "[Red5 path]\webapps\myapp\WEB-INF\classes" TestService.java
  7. 一切正常,但一旦我启动 Flex 客户端来自服务器的回答是“无效的应用程序”
  8. 经过多次尝试后,我发现删除了除该代码之外的所有内容 使一切正常:

    package myapp;
    
    import org.red5.server.adapter.ApplicationAdapter;
    import org.red5.server.api.IConnection;
    import org.red5.server.api.IScope;    
    
    /* myapp */
    public class Application extends ApplicationAdapter {
    
    
    public String sayHello(Object[] params){
        return "got : " + params[0].toString();
    }
    
    }

然后我希望能够追踪。

  1. 我编写了用于 Red5 示例的代码:

    package myapp;

    导入 org.slf4j.Logger; 导入 org.slf4j.LoggerFactory; 导入 org.red5.server.adapter.ApplicationAdapter; 导入 org.red5.server.api.IConnection; 导入 org.red5.server.api.IScope;

    公共类 Application 扩展 ApplicationAdapter {

    protected static Logger log = LoggerFactory.getLogger(Application.class);
    
    public String sayHello(Object[] params){
        log.info("I got your name: "+params[0].toString());
        return "I got your name: " + params[0].toString();
    }
    

    }

  2. 重启 Red5 服务器后:我总是得到响应 来自服务器:“无效的应用程序”

  3. 然后我下载了ant,解压到[Red5 path]
  4. 我创建了一个新文件[Red5 path]\webapps\myapp\WEB-INF\build.xml
  5. 我已将那个 xml 放入其中:
<project name="Projet myapp" default="compile" basedir=".">
    <target name="clean" description="Clean output directories">
    </target>
    <target name="compile" depends="clean">
        <javac srcdir="./src" destdir="./classes" source="1.6" classpath="C:\Program Files\Red5\red5.jar" >
        </javac>
    </target>
    <target name = "jar" depends ="compile">
        <echo message ="Creating jar..."/>
        <jar destfile="./lib/myapp.jar" basedir="./classes"/>
        <echo message ="Done."/>
    </target>
</project>
  1. 运行一个shell,然后输入:
    cd [Red5 path]\webapps\myapp\WEB-INF
    ......\apache-ant-1.7.1\bin\ant jar
  2. 现在一切正常!
  3. 问题来了!
  4. 我不明白的是:
    为什么我必须调用 ant 才能使其工作?

【问题讨论】:

    标签: java red5


    【解决方案1】:

    Ant 将编译代码(编译目标)和构建 jar 文件(目标 jar),该文件将放置在 lib 文件夹中。当你简单地用 javac 编译代码时,不会生成 jar 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-10
      • 2013-02-27
      • 1970-01-01
      • 2010-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      相关资源
      最近更新 更多