簡體   English   中英

用於獨立執行並作為jar庫的Java應用程序

[英]java application for stand alone execution and as a jar library

我想創建一個可以以兩種方式執行的Java應用程序。 作為標准的獨立應用程序,請使用main(args []),並在任何使用jar的Java應用程序中將其作為外部庫導入到其他應用程序。

我面臨的問題是我想在兩種情況下使用相同的功能。 這導致了錯誤,因為當我作為獨立應用程序執行時,我必須聲明靜態方法和變量,但是當我需要從其他應用程序訪問它時,則必須聲明為靜態。

我以前從未做過,所以我不是100%確定這是一個真正的問題。 我過去的項目一直都是靜態的。 我猜我可以將我的代碼放在兩個類中,將主代碼放在一個方法上,將每個其他方法放在另一個方法上,並使用它,因為它是一個單獨的項目。 這是正確的方法嗎?

嘗試這樣寫:

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.
    }
}

新類中僅需要一個公共static 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編譯為獨立時,請將開始設置為另一個類:Lauch Configuration => set Class1或Class2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM