Red5 + Java + Windows安装+ ant编译:它的工作原理,但为什么呢?

时间:2009-05-13 10:52:20

标签: java red5

我对java java服务器世界都是全新的... 但我对面向对象编程有很好的了解(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();
    }
    
    }
  9. 然后我想跟踪。

    1. 我编写了在Red5示例中使用的代码:
      public String sayHello(Object[] params){ return "got : " + params[0].toString(); }

      package myapp;

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

      public class Application extends 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,将其解压缩到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(); }
    4. 我创建了一个新文件}
    5. 我把那个xml放进去了:
    6. [Red5 path]
      1. 运行shell,然后键入:
        [Red5 path]\webapps\myapp\WEB-INF\build.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>
        
      2. 现在一切正常!
      3. 这是问题!
      4. 我不明白的是:
        为什么我必须打电话给ant才能使其正常工作?

1 个答案:

答案 0 :(得分:4)

Ant将编译代码(编译目标)并构建jar文件(目标jar),它将放在lib文件夹中。当您使用javac编译代码时,不会生成jar文件。