[英]Eclipse run configuration annoyance
如果我按如下方式運行jar,則可以理解java -jar Name.jar arg1 arg2 arg3
,在導出(創建.jar)時,我必須指定Eclipse運行配置以識別主要方法,因為可能存在許多主要方法,因為有類。
如果我從Eclipse中運行一個主程序,它將以靜默方式創建一個新的運行配置,這給我要導出的可用運行配置選擇增加了更多的混亂。 如果我對許多類都這樣做,則可能是我有許多基本相同的運行配置,唯一的不同是指定的主要方法。
如果我按如下方式運行一個罐子
java -cp Name.jar package.MyObject arg1 arg2
java -cp Name.jar package.MyOtherObject arg1
那么可能會忽略標識主要方法的Eclipse運行配置。 入口點在命令行上標識。 在這種情況下,Eclipse在導出過程中需要運行配置這一事實似乎很繁瑣,但似乎沒有辦法避免這種情況。
我更喜歡通過-cp
選項運行.jar,因為它使我可以訪問許多入口點。 這樣,當我要訪問其他入口點時,無需重新導出。 關於使用哪個入口點的決定被推遲到我要運行的時間為止。 我不必決定何時導出。 我保持靈活性。
我知道另一種方法是只使用一個arg1
指定任務,因此我只能依靠一個運行配置來標識具有較大switch語句的主方法,然后始終使用-jar
選項調用Java。
如果我使用-jar
,則會出現許多運行配置混亂的情況。 如果使用-cp
則在導出過程中似乎會有一個令人討厭的步驟,其中涉及許多運行配置。 有沒有一種方法可以使用Eclipse來避免這兩個問題?
打開項目,然后選擇File
和Export
以及Java
和JAR file
。 不要選擇Runnable JAR file
。
默認情況下,項目文件夾中的每個文件都被選中作為要導出的資源,您可能要取消選中其中的一部分或全部。 不幸的是,Eclipse不會記住這一點,因此您可能在每次導出時都必須取消檢查資源。
選中src
目錄,不幸的是,它看起來像您要導出源,但是實際上您需要選中它才能導出相應的.class
文件。
復選框Export generated class files and resources
。
瀏覽到要導出或覆蓋的目標JAR文件。
單擊finish
。
Eclipse在上述步驟2中不將第三方JAR文件視為資源,因此您需要找到一種在調用Java時將其提供給-classpath
或-cp
。 我們需要這樣做的原因是,當Eclipse導出“ JAR文件”時,它似乎並沒有遵循您的第三方JAR文件的構建路徑。 Eclipse在導出“可運行的JAR文件”時具有此功能,但這不是我們在此所做的。 您可以手動創建第三方JAR文件的目錄,並讓Java在-classpath
擴展通配符。
linux中的Java調用示例:
java -cp ~/directory/destination.jar:/home/username/directory/thirdparty/"*" com.domain.package.MyObject arg1 arg2 arg3
請注意,在Linux上,我們可以允許bash為您自己的JAR文件“ destination.jar”擴展~
。 對於第三方JAR文件,使用長格式/home/username
,因為波浪號擴展名可能無法在字符串中間(僅在冒號之后)起作用。
如果我們要對第三方JAR文件使用Java *
通配符(與bash命令行通配符不同),必須將*
字符加引號(原義),以便將通配符傳遞給Java。
通過這種方式導出,無需選擇運行配置,並且可以解決引發問題的問題。
另外:如果將您自己的JAR導出到與第三方JAR相同的目錄,則classpath更簡單:
java -cp ~/singleDirectory/"*" com.domain.package.MyObject arg1 arg2 arg3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.