Access restriction on class due to restriction on required library rt.jar?

前端 未结 15 1712
忘掉有多难
忘掉有多难 2020-11-22 01:09

I\'m attempting to compile Java 1.4 code that was created by IBM\'s WSDL2Java on Java5 without recreating

相关标签:
15条回答
  • 2020-11-22 01:15

    My guess is that you are trying to replace a standard class which ships with Java 5 with one in a library you have.

    This is not allowed under the terms of the license agreement, however AFAIK it wasn't enforced until Java 5.

    I have seen this with QName before and I "fixed" it by removing the class from the jar I had.

    EDIT http://www.manpagez.com/man/1/java/ notes for the option "-Xbootclasspath:"

    "Applications that use this option for the purpose of overriding a class in rt.jar should not be deployed as doing so would contravene the Java 2 Runtime Environment binary code license."

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

    "Java Technology Restrictions. You may not modify the Java Platform Interface ("JPI", identified as classes contained within the "java" package or any subpackages of the "java" package), by creating additional classes within the JPI or otherwise causing the addition to or modification of the classes in the JPI. In the event that you create an additional class and associated API(s) which (i) extends the functionality of the Java platform, and (ii) is exposed to third party software developers for the purpose of developing additional software which invokes such additional API, you must promptly publish broadly an accurate specification for such API for free use by all developers. You may not create, or authorize your licensees to create, additional classes, interfaces, or subpackages that are in any way identified as "java", "javax", "sun" or similar convention as specified by Sun in any naming convention designation."

    0 讨论(0)
  • 2020-11-22 01:15

    I have been getting this error too, but my project is built on the command line using Maven and the tycho compiler (it's a set of OSGi plugins). After masses of sifting through people having the same problem but fixing it in Eclipse rather than on the command line, I found a message on the Tycho developer forum that answered my question, using configuration in pom.xml to ignore the compiler warning about the access restriction:

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

    More information can be found in the Tycho FAQ. This took me AGES to work out, so I figured I would assist anyone else trying to fix these access restriction errors from the command line by posting this answer.

    0 讨论(0)
  • 2020-11-22 01:17

    In addition to Nels Beckman's solution, I have the following tips:

    Under Configure Build Path, I had to rearrange the order of my entries under Order and Export.

    Additionally, as an Eclipse PDE developer, I needed to rearrange the order of my dependencies in my MANIFEST.MF, adding the problematic package as first on the list.

    Playing with these dials, along with running Project > Clean in between, I was able to resolve these warnings.

    0 讨论(0)
  • 2020-11-22 01:19

    for me this how I solve it:

    • go to the build path of the current project

    under Libraries

    • select the "JRE System Library [jdk1.8xxx]"
    • click edit
    • and select either "Workspace default JRE(jdk1.8xx)" OR Alternate JRE
    • Click finish
    • Click OK

    Note: make sure that in Eclipse / Preferences (NOT the project) / Java / Installed JRE ,that the jdk points to the JDK folder not the JRE C:\Program Files\Java\jdk1.8.0_74

    0 讨论(0)
  • 2020-11-22 01:19

    Sorry for updating an old POST. I got the reported problem and I solved it as said below.

    Assuming you are using Eclipse + m2e maven plugin, if you get this access restriction error, right click on the project/module in which you have the error --> Properties --> Build Path --> Library --> Replace JDK/JRE to the one that is used in eclipse workspace.

    I followed the above steps and the issue is resolved.

    0 讨论(0)
  • 2020-11-22 01:20

    http://www.digizol.com/2008/09/eclipse-access-restriction-on-library.html worked best for me.

    On Windows: Windows -> Preferences -> Java -> Compiler -> Errors/Warnings -> Deprecated and restricted API -> Forbidden reference (access rules): -> change to warning

    On Mac OS X/Linux: Eclipse -> Preferences -> Java -> Compiler -> Errors/Warnings -> Deprecated and restricted API -> Forbidden reference (access rules): -> change to warning

    0 讨论(0)
提交回复
热议问题