如何在没有main函数的情况下创建Class文件和JAR文件?

时间:2011-06-02 12:42:13

标签: java

当我编译这个程序时,我怎么能为这个编码创建类文件和jar文件,因为程序中没有主函数。而且我也在尝试命令提示符,但我不知道如何设置类路径?请帮我 我的编码在这里

public class NewLogFields implements ILogNotify
{
    public void onLog(Level level, String comment, IMediaStream stream, String category,String event, int status, String context) {
        if (category.equals(WMSLoggerIDs.CAT_session) && event.equals(WMSLoggerIDs.EVT_destroy))
        {
            Long csBytes = (Long)WMSLoggerFactory.getGlobalLogValue(WMSLogger IDs.FD_cs_bytes);
            Long scBytes = (Long)WMSLoggerFactory.getGlobalLogValue(WMSLogger IDs.FD_sc_bytes);
            System.out.println("disconnect: csBytes:"+csBytes+" scBytes:"+scBytes);
        }
    }
}

5 个答案:

答案 0 :(得分:1)

你想做什么?

使用此Java代码创建classjar文件,以便在其他Java程序中使用它?

然后你必须编译它:

java NewLogFields.java

看起来你根本无法编译它。这可能是因为接口ILogNotify(或包含它的jar)不在类路径中。

您可以使用以下命令在类路径中包含包含此接口的路径/ jar:

javac -cp .;path_to_jar_or_class NewLogFields.java

其中path_to_jar_or_class是包含ILogNotify的文件夹或jar文件的路径。 例如,这可能类似于./logNotify.jar./log/

答案 1 :(得分:1)

在wowza media Serever中编译编码后,jar文件会自动在库文件夹中创建,请参阅安装库文件夹。如果您有问题,请通过此链接Wowza Quick Guide

答案 2 :(得分:0)

您可以使用javac命令设置use switch -cp或-classpath。

例如javac -cp路径和jat文件或类文件的名称yourjavafile.java

答案 3 :(得分:0)

使用编译器创建类文件:javac NewLogFileds.java 使用jar命令创建jar文件:jar cvf stuff.jar NewLogFileds.class

你是正确的,程序需要一个main()函数才能运行。 加: public static void main(String args[]) { // code here }

使用它可以运行带或不带jar的代码: java NewLogFields or java -cp stuff.jar NewLogFields

有一些方法可以创建一个MANIFEST文件,告诉java从jar运行哪个类,使最后一行变得更简单。

答案 4 :(得分:0)

您提供的link告诉您如何操作:

  1. 以正常方式编译您的课程。

  2. 以正常方式创建包含您的类的JAR文件。

  3. 将jAR文件复制到wonza安装的lib中,如javadoc中所述。

  4. 编辑启动脚本,将-Dcom.wowza.wms.logging.LogNotify=...选项添加到JAVA_OPTS ...,如javadoc中所述。

    “完整路径到你的ILogNotify类”实际上应该是你班级的完全限定类名;从例子中可以明显看出。

  5. 按照javadoc中的描述编辑WowzaMediaServerPro-Service.conf和log4j.properties。

  6. 重启服务器。

  7. 如果将JAR文件放在目录中,就像指令所告诉您的那样,则不需要通过更改-cp参数来修改类路径。

    您的课程不需要main方法,因为它不是一个独立的应用程序。相反,它是一个“插件”类,可以根据需要由Wowza核心动态加载和实例化。 “-D ...”选项和配置文件更改告诉Wonza核心哪个类尝试加载。