Package accessible from more than one module: <unnamed>
Asked Answered
N

4

18

When trying to register an MBean in JMX Console I'm getting the following error message:

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

I'm using Eclipse and I have no module-info.java file in my project structure.

enter image description here

The error disappear when I comment my dependency for Java EE API, but the javax.management package is not part of the JAR.

enter image description here

enter image description here

Neritic answered 29/4, 2019 at 11:35 Comment(1)
It might be brought in by one of the projects that you are depending on.Dendrology
T
12

I experienced similar issue when updating from java 8 to java 11. Steps below helped me,

  • Right click Eclipse project > Properties > Java Build Path
  • In Libraries tab, remove all the external jar files under Modulepath and add them under Classpath (you can just select all the jars and drag them under Classpath)
  • Click Apply and Close

Note: JRE System Library will remain under Modulepath.

Eclipse version: 2019-09

Terrapin answered 8/10, 2019 at 17:24 Comment(0)
A
2

If you are facing same problem in Java 11 just simply remove module dependency in JRE 11 (java.xml, java.xml.crypto).

Follow below step right click on project -> build path -> Module dependency -> Just remove two modules from java11 it helps.

Acanthopterygian answered 18/6, 2021 at 10:53 Comment(0)
D
1

The best workaround with this is to locate the library that causes the duplication issue as it provides the same package than another module in the application. Just browse your project dependencies both JRE System Libraries and Project External Libraries, and examine packages within each library.

When you found that library, just exclude it from the build.

Say it is a library with this dependency signature:

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

All you have to do is to exclude it from the build like this:

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

I answered to a similar question here ...

Droughty answered 17/6, 2021 at 10:49 Comment(0)
V
-1

Are you using Java-1.8? Because it is default package no need to add dependency for that.

Vaduz answered 29/4, 2019 at 12:6 Comment(1)
Java 11. I'm not adding the dependency for the JMX, I know that it is part of Java SE.Neritic

© 2022 - 2024 — McMap. All rights reserved.