Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Package accessible from more than one module: <unnamed>

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

like image 639
Evandro Pomatti Avatar asked Apr 29 '19 11:04

Evandro Pomatti


2 Answers

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

like image 96
Pro Avatar answered Sep 17 '22 11:09

Pro


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 ...

like image 27
BryZe NtZa Avatar answered Sep 20 '22 11:09

BryZe NtZa