830 votes

Restrictions d’accès à la classe à cause de la restriction sur la bibliothèque requise rt.jar ?

Je tente de compiler du code Java 1.4 qui a été créé par IBM WSDL2Java sur Java5 sans recréer les stubs et j’ai vu de cette erreur dans Eclipse. Je suis en supposant que les stubs créés doivent compiler seulement aussi longtemps que les pots de runtime sont disponibles (ils sont).

``

Classname complet est``

Ce qui exactement se passe ici ?

S’agit-il d’un cas où je suis en train de refactoriser un porc de saucisse ? Je suis mieux hors recréant les stubs ?

1900voto

Nels Beckman Points 9949

Il y a une autre solution qui fonctionne aussi. Je l'ai trouvé sur ce forum:

  1. Aller au Chemin de génération des paramètres dans les propriétés du projet.
  2. Supprimer la JRE System Library
  3. Ajouter, Sélectionnez "Add Library" et sélectionnez le JRE System Library. La valeur par défaut a fonctionné pour moi.

Cela fonctionne parce que vous avez plusieurs classes dans différents fichiers jar. La suppression et re-ajout de la jre lib de faire les classes de première. Si vous voulez une solution fondamentale assurez-vous d'exclure les fichiers jar avec les mêmes classes.

Pour moi, j'ai: javax.xml.le savon.SOAPPart dans 3 pots: axis-saaj-1.4.jar saaj-api-1.3.jar et la rt.jar

126voto

scommab Points 707

http://www.digizol.com/2008/09/Eclipse-Access-restriction-on-Library.html a mieux fonctionné pour moi.

Windows-> préférences-> Java-> compilateur-> erreurs/avertissements-> API obsolète et trstricted-> référence interdite (règles d’accès) :-> changement de mise en garde

69voto

sanwanxian Points 419

J’ai rencontré le même problème. J’ai trouvé la réponse dans le site Web : http://www.17ext.com.
Tout d’abord, supprimez les bibliothèques système de JRE. Importez ensuite les bibliothèques système JRE à nouveau.

Je ne sais pas pourquoi. Toutefois, il fixe mon problème, espérons qu'il peut vous aider.

35voto

Peter Lawrey Points 229686

Ma conjecture est que vous essayez de remplacer une classe standard qui est livré avec Java 5 avec une dans une bibliothèque que vous avez.

Ce n'est pas autorisé en vertu des conditions du contrat de licence, cependant, autant que je sache, il n'était pas en vigueur avant Java 5.

J'ai vu cela avec QName avant et j'ai "corrigé" par la suppression de la classe le pot que j'ai eu.

MODIFIER http://www.manpagez.com/man/1/java/ notes pour l'option "-Xbootclasspath:"

"Les Applications qui utilisent cette option pour les fins de l'annulation d'une classe de rt.jar ne doit pas être déployé afin d'éviter de contrevenir à la Java 2 Runtime Environment code binaire de licence".

L' http://www.idt.mdh.se/rc/sumo/aJile/Uppackat/jre/LICENSE

"La Technologie Java Restrictions. Vous ne pouvez pas modifier la Java L'Interface de la plateforme ("JPI", identifiés comme les classes contenues au sein de la "java" ou de toute sous-paquets de "java" package), par la création de classes supplémentaires à l'intérieur de la JPI ou sinon, provoquant l'ajout ou la modification de la les classes dans le JPI. Dans le cas où vous créez un classe supplémentaire et API associée(s) qui (i) s'étend la fonctionnalité de la plate-forme Java, et (ii) est exposée à des tiers développeurs de logiciels dans le but de développement d'un logiciel supplémentaire qui les invoque tels API supplémentaire, vous devez publier rapidement, en gros, un précis spécifications de ces API pour la libre utilisation par tous les des développeurs. Vous ne pouvez pas créer ou autoriser votre les titulaires de permis de créer, d'autres classes, interfaces, ou des sous-paquets qui sont identifiés comme "java", "javax", "soleil" ou similaire convention, telle que prévue par le Soleil une convention de dénomination de désignation".

27voto

DuffJ Points 403

J'ai été faire cette erreur, mais mon projet est construit sur la ligne de commande à l'aide de Maven et le tycho compilateur (c'est un ensemble d'OSGi plugins). Après des masses de tamisage par des personnes ayant le même problème, mais en le fixant droit dans Eclipse plutôt que sur la ligne de commande, j'ai trouvé un message sur le Tycho developer forum qui a répondu à ma question, à l'aide de configuration en pom.xml d'ignorer l'avertissement du compilateur sur la restriction d'accès:

<plugin>
    <groupId>org.eclipse.tycho</groupId>
    <artifactId>tycho-compiler-plugin</artifactId>
    <version>${tycho.version}</version>
    <configuration>
        <compilerArgument>-warn:+discouraged,forbidden</compilerArgument>
    </configuration>
</plugin>

Plus d'informations peuvent être trouvées dans le Tycho FAQ. Ce qui m'a pris ÂGE de travailler, alors j'ai pensé que je voudrais aider quelqu'un d'autre d'essayer de corriger ces restriction d'accès des erreurs à partir de la ligne de commande par l'affichage de cette réponse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X