簡體   English   中英

可從多個模塊訪問的包:<unnamed>

[英]Package accessible from more than one module: <unnamed>

嘗試在 JMX 控制台中注冊 MBean 時,我收到以下錯誤消息:

The package javax.management is accessible from more than one module: <unnamed>, java.management

我正在使用 Eclipse,但我的項目結構中沒有module-info.java文件。

在此處輸入圖片說明

當我評論我對 Java EE API 的依賴時,錯誤消失了,但javax.management包不是 JAR 的一部分。

在此處輸入圖片說明

在此處輸入圖片說明

從 java 8 更新到 java 11 時,我遇到了類似的問題。以下步驟對我有幫助,

  • 右鍵單擊 Eclipse 項目 > 屬性 > Java 構建路徑
  • Libraries選項卡中,刪除Modulepath下的所有外部 jar 文件並將它們添加到Classpath下(您只需選擇所有 jar 並將它們拖到Classpath下)
  • 單擊應用並關閉

注意:JRE 系統庫將保留在Modulepath下。

Eclipse 版本:2019-09

你在使用 Java-1.8 嗎? 因為它是默認包,所以不需要為此添加依賴項。

最好的解決方法是找到導致重復問題的庫,因為它提供的包與應用程序中的另一個模塊相同。 只需瀏覽您的項目依賴項 JRE 系統庫和項目外部庫,並檢查每個庫中的包。

當您找到該庫時,只需將其從構建中排除即可。

假設它是一個具有此依賴項簽名的庫:

group: 'lib.group', name: 'lib-name', version: notImportant

您所要做的就是將它從構建中排除,如下所示:

dependencies {
...
  configurations {
       compile.exclude group: 'lib.group', module: 'lib-name'
  }
...
}

在這里回答了一個類似的問題......

如果您在 Java 11 中遇到同樣的問題,只需刪除 JRE 11(java.xml、java.xml.crypto)中的模塊依賴即可。

按照以下步驟右鍵單擊項目 -> 構建路徑 -> 模塊依賴 -> 只需從 java11 中刪除兩個模塊,它會有所幫助。

我使用的是 java11,在切換回 java 8 后幫助我解決了 java 構建路徑中的這些問題。

暫無
暫無

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

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