permission java access-denied

java access denied file permission



Restricción de acceso: no es accesible debido a la restricción en la biblioteca requerida.. / jre / lib / rt.jar (10)

Estoy intentando modificar algún código heredado de hace tiempo y obtener el siguiente tipo de errores:

Restricción de acceso: El método create (JAXBRIContext, Object) del tipo Encabezados no es accesible debido a la restricción en la biblioteca requerida ... / jre / lib / rt.jar

para estas declaraciones de importación:

import com.sun.xml.internal.bind.api.JAXBRIContext; import com.sun.xml.internal.ws.api.message.Header; import com.sun.xml.internal.ws.api.message.Headers; import com.sun.xml.internal.ws.developer.WSBindingProvider;

He estado buscando lo que esto podría significar y cómo solucionarlo, sin embargo, no he podido encontrar una respuesta clara. Algunas publicaciones parecen sugerir que tengo algunos JAR incluidos que implementan clases que ahora están disponibles como parte de la distribución básica de java, pero por lo que puedo ver, ninguno de los JAR que incluyo contiene versiones diferentes / anteriores de las clases anteriores.

¿Alguien puede decirme de qué se trata este error y cómo podría arreglar esto?

Gracias por su ayuda ya con antelación,

Olli


Cambié la faceta del proyecto a 1.7 y funcionó.


En el entorno de eclipse donde ejecuta sus programas Java, siga estos pasos:

  1. Haga clic en Proyecto justo encima de la barra de menú en eclipse.
  2. Haga clic en propiedades.
  3. Seleccione las bibliotecas, haga clic en la biblioteca existente y haga clic en Eliminar a la derecha de la ventana.
  4. Repita el proceso y ahora haga clic en agregar biblioteca, luego seleccione la biblioteca del sistema JRE y haga clic en Aceptar.

Estoy respondiendo a esta pregunta porque tenía una forma diferente de solucionar este problema que las otras respuestas. Tuve este problema cuando reformulé el nombre de los complementos que estaba exportando. Finalmente, tuve que asegurarme de corregir / cambiar lo siguiente.

  1. Las dependencias del archivo de producto
  2. Las dependencias de plugin.xml (y asegúrese de que no se importen implícitamente usando el diálogo de paquetes importados).
  3. La pestaña Ejecutar complementos de configuración. Ejecutar como ..-> Configuraciones de ejecución-> pestaña Plug-ins. Desmarque los complementos anteriores y luego haga clic en Agregar complementos necesarios.

Esto funcionó para mí, pero su kilometraje puede variar.


Excelente respuesta ya proporciona en el sitio here .

Vea el resumen a continuación:

  1. Vaya a la configuración de Ruta de compilación en las propiedades del proyecto.
  2. Eliminar la biblioteca del sistema JRE
  3. Agregarlo de nuevo; Seleccione "Agregar biblioteca" y seleccione la Biblioteca del sistema JRE. El valor predeterminado funcionó para mí.

He resuelto este problema con estos pasos: expanda su proyecto, haga clic con el botón derecho en "JRE System Library"> Propiedades> elija la 3ª opción "JRE de espacio de trabajo predeterminado"> Aceptar. Espero que te ayude también


Ir a Buildpath

Elimine JRE existente y agregue una nueva biblioteca JRE que contenga Jdk1.6 y finalice. Ahora limpie todo el proyecto y vuelva a compilar.

Creo que de esta manera puedes resolver tu error


Me encontré con algo similar, creo que la causa de la advertencia es que Eclipse intenta desanimarlo para que use los paquetes com.sun internos que están instalados como parte de su JRE del espacio de trabajo pero que no son parte de la API pública de Java.

Como dice Justin en su respuesta, cambiar la configuración del compilador puede ocultar la advertencia. Un enfoque más detallado es modificar su ruta de compilación para permitir explícitamente el acceso al paquete en cuestión:

  1. Abra la pestaña Libraries de la ventana de propiedades del proyecto Java Build Path.
  2. Expanda la entrada de la biblioteca del sistema JRE.
  3. Seleccione "Reglas de acceso" y presione el botón Editar.
  4. Haga clic en el botón Agregar en el cuadro de diálogo resultante.
  5. Para la nueva regla de acceso, configure la resolución en Accesible y el patrón en "com/sun/xml/internal/**" .

Después de agregar esta regla de acceso, su proyecto debe compilar sin estas advertencias.


No es una solución verdadera, pero en todas partes que busque, la solución sugerida es simplemente decirle a Eclipse que esos no son errores. Puede cambiarlo yendo a Propiedades -> Compilador Java -> Advertencias de errores -> API obsoletas y restringidas -> Referencia prohibida (regla de acceso), cámbiela de Error a Advertencia o Ignorar.


Tuve el mismo problema cuando mi complemento dependía de otro proyecto, que exportaba algunos paquetes en su archivo de manifiesto. En lugar de cambiar las reglas de acceso, he logrado resolver el problema agregando los paquetes necesarios en su sección Exportar paquete. Esto hace que los paquetes sean legalmente visibles. Eclipse realmente proporciona esta corrección en el marcador de error "restricción de acceso".


En Eclipse:
Project -> properties -> java Build Path -> libraries

Elimine la biblioteca del sistema JRE existente, luego Add Library -> JRE System library -> next -> ok

El error será eliminado.