[英]How do i conditionally load a library in java depending on the operating system?
[英]How to dynamically inherit depending on operating system?
我正在開發兩個操作系統。 每個都有一個特定的BaseClass
實現。 我想抽象這些實現。 我的想法是使用兩個實現的接口,然后使用工廠模式返回特定於OS的類。 這看起來與此類似。
但是,采用這種方法將需要我在構建應用程序之前指定應使用哪種實現,例如,通過保存OS名稱的常量(鏈接答案中的platform
變量)。 對我來說,這似乎是一個糟糕的設計選擇。 還有另一種方法來定義要構建的操作系統嗎?
你不知道
這不是Java的工作方式。 Java程序不是為特定的目標系統編譯的,它們應該是可移植的並且可以在所有系統上工作。 請參閱可以在任何操作系統上運行JAR文件?
但是,如果您需要執行某些特定於操作系統的操作,則可以使用系統屬性來找出程序在運行時在哪個OS上運行。 然后,您可以使用此信息在某種工廠中選擇適當的實現,但這是運行時的決定。
查找操作系統的一些方法: 如何以編程方式確定Java的操作系統?
java將操作系統名稱存儲在其標准屬性中,因此以下調用應為您提供操作系統名稱:
System.getProperty("os.name")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.