On 17/01/2018 18:53, Rony G. Flatscher wrote:
:
Not with Java 9 javac, the following Java program:
public class TestUse
{
public static void main (String args[]) {
mtest3.Class03A o=new mtest3.Class03A();
System.out.println("o: "+o+", myClassName: "+o.myClassName);
}
}
yields the error message:
F:\work\svn\bsf4oorexx\trunk\bsf4oorexx.dev\testUnits\bsf4rexx\java9modules>java
-cp ".;F:\work\svn\bsf4oorexx\trunk;.;C:\Program Files
(x86)\BSF4ooRexx\bsf4ooRexx-v600-20180101-bin.jar;C:\Program Files
(x86)\BSF4ooRexx\jni4net.j-0.8.8.0.jar;C:\Program Files
(x86)\BSF4ooRexx\oorexx.net.jar;." --module-path out --add-modules
mod_A,mod_B,mod_C TestUse
Exception in thread "main" java.lang.IllegalAccessError: tried to
access field mtest1.Class01A.myClassName from class TestUse
at TestUse.main(TestUse.java:5)
If it compiles then it should run so something isn't right here. I just
tried this with JDK 9 and JDK 10 EA builds but couldn't duplicate it
(the compilation fails as expected because myClassName has protected
access in mod_A/mtest1.Class01A).
Would you mind zipping up the sources for mod_A, mod_B, and mod_C so we
can duplicate this?
-Alan