2017-09-29 53 views
8

似乎是javax.activation軟件包在Java 9中已棄用。 Oracle遷移指南建議在JVM啓動期間使用--add-modules java.activation選項。java 9中的javax.activation包的替代品是什麼?

但是,我想避免這種情況,並取代javax.activation包的類,因爲它已被棄用,並將在未來的java版本中被刪除。我想,javax.activation應該有一些替代品。如果有任何可用的,它是什麼?

回答

8

JavaBeans Activation Framework (JAF)可能是您正在尋找現有軟件包的替代方案。

這個獨立JAF的版本使用的java.activation一個Java平臺模塊系統 自動模塊名稱,以便在JDK 9.一種未來的版本中使用將包括充分模塊元數據中的模塊名 匹配。

單機API是在僅模塊化形式通過的upgradeable modules概念支撐。使用它們,可以在任何階段,即在編譯時,編譯時或運行時使用該模塊的版本。


當前available version這是1.2.0其可用於這樣的:

的Maven

<dependency> 
    <groupId>com.sun.activation</groupId> 
    <artifactId>javax.activation</artifactId> 
    <version>1.2.0</version> 
</dependency> 

搖籃

compile 'com.sun.activation:javax.activation:1.2.0' 

常春藤

<dependency org="com.sun.activation" name="javax.activation" rev="1.2.0" /> 
6

JavaBeans的Activiation框架是一個獨立的技術與自己維護JSR在JCP和自己的下載。是的,Java SE 9已經棄用它,並且打算在將來的發行版中刪除與Java EE共享的模塊,但這不會影響獨立版本。獨立版本將繼續存在。如果您正在使用Maven那麼這應該工作:

<dependency> 
    <groupId>com.sun.activation</groupId> 
    <artifactId>javax.activation</artifactId> 
    <version>1.2.0</version> 
</dependency> 

,如果你正在開發一個模塊,那麼你就可以requires java.activation

+0

=提供我要補充這一個? –

2

萬一別人遇到這樣和我一樣被誤導了實際的命令行選項不是--add-module--add-modules

因此,與`與範圍的JavaEE-api`依賴
+0

好,我只是糾正它的問題。 – Nicolai