簡體   English   中英

從相同名稱的包中引用相同名稱的不同類

[英]Referring different classes of same name from packages of same name

我們有一個過程,需要在不同的時間引用具有相同名稱的兩個不同的加密類。 這兩個類名都相同,並且包路徑相同:“ com.abc.security.encryption”。

這兩個類具有相同的包名稱com.abc.security.encryption,但是它們存在於不同的jar文件中。

假設Jar A中存在ENCRYPTION.class(新邏輯),Jar B中存在ENCRYPTION.class(舊邏輯)。現在在我的過程中,當我們調用引用ENCRYPTION.class的Jar B API時,就是引用ENCRYPTION.class (新邏輯)存在於Jar A中,而不是JAR B中存在的ENCRYPTION.class(舊邏輯)。

在刪除具有ENCRYPTION.class(新邏輯)的Jar A之前,不會引用Jar B中存在的ENCRYPTION.class(舊邏輯)。

由於兩種加密邏輯都來自許多不同模塊使用的不同實用程序模塊,因此我無法要求它們更改程序包的名稱。

我需要一種方法來確保兩個邏輯都在所需的位置被引用,而無需更改那些模塊中的任何內容。 可以在我的過程的類路徑或代碼中進行任何更改,以便調用Jar B API並調用Jar B本身中存在的ENCRYPTION.class(舊邏輯)。 當我直接調用ENCRYPTION.class時,它應該引用Jar A中存在的ENCRYPTION.class(新邏輯)。

嘗試通過將第一類路徑添加為“”。 這個過程。 但這並沒有解決問題。 非常感謝您的幫助。

謝謝,Nvn

您應該從類路徑中刪除有問題的jar。 具有多個包含相同完全限定的類名的jar的類路徑是災難的秘訣。

如果這不是一個選擇,則您可能可以創建一個自定義類加載器來執行此交換。 但這可能並不容易。 還有一個類似的問題,如果您走這條路,它可能會讓您入門: 卸載Java中的類?

暫無
暫無

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

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