Restricción de acceso en clase debido a restricción en la biblioteca requerida

Recibo este mensaje de error en Eclipse:

Access restriction: The type DirectoryWalker is not accessible due to restriction on required library /Library/Java/Extensions/commons-io-1.4.jar 

¿Qué significa esto? Hay esta otra pregunta SO sobre el mismo tema, pero no parece aplicarse en este caso. No estoy creando una nueva clase Java, estoy tratando de usar una.

Supongo que otra biblioteca que está utilizando también requiere Apache Commons I / O, pero una versión diferente. Tener un fragmento de código (transitivo) para tener acceso a dos versiones de los mismos paquetes es un poco complicado. Probablemente pueda organizarlo para que su código y la otra biblioteca usen la misma versión. ¡Todo es mucho más fácil con CLASSPATH! 🙂

vaya a la ruta de comstackción de Java y en la pestaña Biblioteca, elimine la Biblioteca del sistema de JRE. Entonces otra vez agregue la biblioteca -> biblioteca de sistema de JRE

Trabajó para mi

Este es mi error menos favorito, lo he encontrado varias veces y la “restricción en la biblioteca requerida” es lo suficientemente aburrida como para dejarte rascándote la cabeza. Sin embargo, es fácil de arreglar.

La forma más rápida (estoy usando Helios) es ir a Window-> Preferences-> Java-> Compiler-> Errors / Warnings, encontrar y abrir la viñeta “Deprecated and Restricted API”, y establecer la referencia prohibida y desalentada a algo otro que el error.

“Advertencia” suele ser lo mejor, ya que algo en Java land está activando esto y es probable que desee una nota al pie. @SuppressWarnings y sus primos, el 98% de las veces, tienen el mismo efecto en la lógica personal y social de un progtwigdor como, por ejemplo, un atracón etéreo. Pero ese es solo mi humilde análisis.

¡La mejor de las suertes!

Por lo que vale, también tuve este error recientemente (biblioteca diferente).

Mi IDE (MyEclipse) hace referencia a una determinada biblioteca como parte de la ruta de clase del proyecto en general, pero también tenía una copia del JAR relevante en la carpeta de extensiones Java de mi máquina.

El choque resultante dio el error (inútil) que has experimentado. Por lo tanto, para cualquier otra persona que golpee este error, es posible que desee considerar sus classpaths también.

Configuración de ruta de comstackción del proyecto -> pestaña Bibliotecas -> seleccionar Biblioteca de sistema JRE -> botón Editar -> cambiar de pestaña de radio Entorno de ejecución que dice J2SE 1.x (jdk1.6.0_21) a JRE de espacio de trabajo predeterminado (jdk1.6.0_21) [Recostackdo ]

¡Esta es la mejor solución!

Tuve el mismo error, la forma en que lo arreglé fue establecer el JRE del espacio de trabajo predeterminado al igual que el proyecto, tuve JRE6 para el espacio de trabajo y JRE7 para la configuración del proyecto, ambos para JRE7 corrigieron el problema

Si está utilizando m2eclipse, me parece que “Update Project Configuration” lo soluciona.

Haga clic con el botón derecho en el proyecto, seleccione Maven> Actualizar configuración del proyecto y espere unos segundos.

En mi caso, pude resolver esto al desmarcar el atributo de carpeta ‘ Solo lectura ‘ en las Propiedades de la carpeta del proyecto.

Luego, re-configuré la ruta Build del proyecto, luego Clean .

Se había resuelto el error.

Para aquellos que buscan por qué Eclipse puede construir el proyecto, pero Maven no puede, verifique si tiene JUnit como una Biblioteca, o como una dependencia de complemento. Si se agrega como una biblioteca, Maven no podrá recogerla y lanzar muchas restricciones de acceso (el tipo xyz no es API).