2012-04-15 128 views
1

我正在尝试使用教程here生成Red5服务器示例。我已经做了所有的事情,包括添加red5.jar,commons-logging-1.1.1.jar,但是当我尝试使用ant构建我自己的jar文件时,出现以下错误!尝试编译Red5服务器示例时出现Java错误

Buildfile: C:\Users\MediaStudio\workspace\Sample\build.xml 
clean: 
compile: 
    [javac] C:\Users\MediaStudio\workspace\Sample\build.xml:8: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds 
    [javac] Compiling 1 source file to C:\Users\MediaStudio\workspace\Sample\classes 
    [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5 
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:4: error: package org.apache.commons.logging does not exist 
    [javac] import org.apache.commons.logging.Log; 
    [javac]        ^
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:5: error: package org.apache.commons.logging does not exist 
    [javac] import org.apache.commons.logging.LogFactory; 
    [javac]        ^
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:6: error: package org.red5.server.adapter does not exist 
    [javac] import org.red5.server.adapter.ApplicationAdapter; 
    [javac]        ^
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:7: error: package org.red5.server.api does not exist 
    [javac] import org.red5.server.api.IConnection; 
    [javac]       ^
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:8: error: package org.red5.server.api does not exist 
    [javac] import org.red5.server.api.IScope; 
    [javac]       ^
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:12: error: cannot find symbol 
    [javac] public class Application extends ApplicationAdapter{ 
    [javac]        ^
    [javac] symbol: class ApplicationAdapter 
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:14: error: cannot find symbol 
    [javac] private static final Log log = LogFactory.getLog(Application.class); 
    [javac]     ^
    [javac] symbol: class Log 
    [javac] location: class Application 
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:17: error: cannot find symbol 
    [javac] public boolean appStart(IScope app){ 
    [javac]      ^
    [javac] symbol: class IScope 
    [javac] location: class Application 
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:26: error: cannot find symbol 
    [javac] public boolean roomStart(IScope room){ 
    [javac]      ^
    [javac] symbol: class IScope 
    [javac] location: class Application 
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:35: error: cannot find symbol 
    [javac] public boolean roomConnect(IConnection conn, Object params[]){ 
    [javac]       ^
    [javac] symbol: class IConnection 
    [javac] location: class Application 
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:44: error: cannot find symbol 
    [javac] public void roomDisconnect(IConnection conn){ 
    [javac]       ^
    [javac] symbol: class IConnection 
    [javac] location: class Application 
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:50: error: cannot find symbol 
    [javac] public void appDisconnect(IConnection conn){ 
    [javac]       ^
    [javac] symbol: class IConnection 
    [javac] location: class Application 
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:14: error: cannot find symbol 
    [javac] private static final Log log = LogFactory.getLog(Application.class); 
    [javac]        ^
    [javac] symbol: variable LogFactory 
    [javac] location: class Application 
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:18: error: cannot find symbol 
    [javac] if(super.appStart(app) == false){ 
    [javac] ^
    [javac] symbol: variable super 
    [javac] location: class Application 
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:27: error: cannot find symbol 
    [javac] if(super.roomStart(room) == false){ 
    [javac] ^
    [javac] symbol: variable super 
    [javac] location: class Application 
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:36: error: cannot find symbol 
    [javac] if(super.roomConnect(conn, params) == false){ 
    [javac] ^
    [javac] symbol: variable super 
    [javac] location: class Application 
    [javac] C:\Users\MediaStudio\workspace\Sample\src\org\xyz\Application.java:45: error: cannot find symbol 
    [javac] super.roomDisconnect(conn); 
    [javac]^
    [javac] symbol: variable super 
    [javac] location: class Application 
    [javac] 17 errors 
    [javac] 1 warning 

BUILD FAILED 
C:\Users\MediaStudio\workspace\Sample\build.xml:8: Compile failed; see the compiler error output for details. 

我使用Eclipse的经典版(不知道这是很重要的或没有,但!)

+0

看起来像一个非常古老的页面。 Red5源代码位于http://code.google.com/p/red5/source/checkout。您的构建失败,因为它缺少第三方依赖关系,例如公共日志记录。 – 2012-04-15 15:54:14

+0

嗯,我已经手动添加'commons logging' jar文件,否则Eclipse不会让我尝试构建它。我不知道为什么它不承认它! – 2012-04-15 18:19:40

+1

ANT和eclipse不共享管理编译类路径的相同机制... Eclipse使用“.classpath”文件,ANT管理“build.xml”中的类路径 – 2012-04-15 21:05:18

回答

0

我通过添加classpath属性的javac命令里面的构建文件指向解决了这个问题正确的jar文件如下面的行:

classpath="${lib.dir}/red5.jar:${lib.dir}/commons-logging-1.1.1.jar" 
+0

我建议您不要依赖commons-logging;使用slf4j + logback代替它,它包含在red5构建中(在red5/lib中)。 – 2012-05-01 16:05:02

相关问题