独立执行的Java应用程序和jar库

时间:2015-12-01 14:32:22

标签: java jar

我想创建一个可以通过两种方式执行的java应用程序。 作为标准的独立应用程序,使用main(args []),并在任何使用jar的java应用程序中,作为外部库导入到其他应用程序。

我面临的问题是我想在两种情况下使用相同的功能。这导致错误,因为我必须在作为独立应用程序执行时声明静态方法和变量,但是当我需要从其他应用程序访问它时不是静态的。

我之前从未这样做过,所以我不能100%确定这是一个真正的问题。我过去的项目一直都是静态的。 我猜我可以在两个类中包含我的代码,在另一个上使用main和其他所有方法,并使用它,因为它是一个单独的项目。 这是正确的做法吗?

2 个答案:

答案 0 :(得分:3)

尝试这样写:

public class DoubleDuty {
    // This is the main method executed using java -jar
    public static void main(String [] args) {
        DoubleDuty dd = new DoubleDuty();
        dd.complexApplication();
    }

    public void complexApplication() {
        // This can be executed by others who import this JAR.
    }
}

答案 1 :(得分:0)

新课程中只需要一个公共静态main()。

main始终是静态的,但是您的类可以有实例。

您可以通过其他课程来调用它:

public class Class1 {
public static void main(String args[])
    {
    System.out.println("Class1 BEGINS !");
    }
}

public class Class2 {
    public static void main(String args[])
        {
        Class1.main(args);
        // or that
        Class1.main(new String[0]); beware if inside main , you read args !
        }

}

当您将jar编译为独立时,将start设置为另一个类: Lauch配置=>设置Class1或Class2

相关问题