Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
红色5+;Java+;Windows安装&x2B;ant编译:它有效,但为什么?_Java_Red5 - Fatal编程技术网

红色5+;Java+;Windows安装&x2B;ant编译:它有效,但为什么?

红色5+;Java+;Windows安装&x2B;ant编译:它有效,但为什么?,java,red5,Java,Red5,我对java和java服务器世界都是全新的。。。 但我对面向对象编程有很好的了解(17年)。 我的问题是: 为什么我要打电话给ant让它工作(见下文,如果你不感兴趣,跳过我的问题^ u^) 我想要的是:创建一个简单的应用程序,可以进行视频会议(=服务器接收一个客户端视频流并将其发送给X个客户端)。 我想要免费的(AdobeServer大约要10000美元)。 我找到的唯一解决方案是Red5(请参阅) 我已经下载并安装了0.7版本。 以下是我为成功编译Red5的java应用程序所做的步骤: 下载并

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

为什么我要打电话给ant让它工作(见下文,如果你不感兴趣,跳过我的问题^ u^)

我想要的是:创建一个简单的应用程序,可以进行视频会议(=服务器接收一个客户端视频流并将其发送给X个客户端)。 我想要免费的(AdobeServer大约要10000美元)。 我找到的唯一解决方案是Red5(请参阅)

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

  • 下载并安装(Windows XP) 最新版本(0.7)
  • 在中手动下载并复制 安装文件夹中已删除的一些文件 在0.7安装中被遗忘 (与v0.6版本进行比较,猜猜是哪一个版本) (
    ivy.xml
    如果我记得的话)
  • 进入
    [Red5 path]\webapps
    文件夹。抄袭/ 粘贴
    教程
    文件夹
  • 将文件夹重命名为
    myapp
  • 编辑该文件夹中的所有xml文件,搜索字符串
    tutorial
    并将其重命名为
    myapp
  • 以下是我所做的,但它没有起作用: 用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
  • 一切都很好,但一旦我启动了 Flex客户端来自服务器的回答是“无效应用程序”
  • 经过多次尝试后,我发现删除所有内容,但不删除该代码 让一切顺利:

    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();
    }
    
    }
  • 然后我想能够追踪

  • 我在Red5示例中编写的代码:
    
    }
    

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

  • 然后我下载了它,并将其解压缩到
    [Red5 path]
  • 我创建了一个新文件
    [Red5 path]\webapps\myapp\WEB-INF\build.xml
  • 我已经将xml放入其中:
  • 
    
  • 运行shell,然后键入:
    cd[Red5 path]\webapps\myapp\WEB-INF
    ..\apache-ant-1.7.1\bin\ant-jar
  • 现在一切都好了
  • 问题来了
  • 我不明白的是:
    为什么我必须给ant打电话才能让它工作?

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

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

    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();
    }
    
    <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>
    
    cd [Red5 path]\webapps\myapp\WEB-INF ......\apache-ant-1.7.1\bin\ant jar