我想创建一个可以通过两种方式执行的java应用程序。 作为标准的独立应用程序,使用main(args []),并在任何使用jar的java应用程序中,作为外部库导入到其他应用程序。
我面临的问题是我想在两种情况下使用相同的功能。这导致错误,因为我必须在作为独立应用程序执行时声明静态方法和变量,但是当我需要从其他应用程序访问它时不是静态的。
我之前从未这样做过,所以我不能100%确定这是一个真正的问题。我过去的项目一直都是静态的。 我猜我可以在两个类中包含我的代码,在另一个上使用main和其他所有方法,并使用它,因为它是一个单独的项目。 这是正确的做法吗?
答案 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