This should be discussed on jigsaw-dev.
But can you share your code ? - since the following works for me :
import java.awt.Toolkit;
public class TK {
public static void main(String args[]) throws Exception {
Toolkit tk = Toolkit.getDefaultToolkit();
Class tkc = Class.forName("java.awt.Toolkit");
java.lang.reflect.Method m = tkc.getMethod("getScreenSize");
System.out.println(m.invoke(tk));
}
}
~/jdk9b142/bin/java TK
java.awt.Dimension[width=1920,height=1200]
-phil.
On 01/05/2017 11:03 AM, Rony G. Flatscher wrote:
Experimenting with further scripts indicates that this is a systematic problem
whenever the official
APIs return members that are not made available to an unnamed module: e.g.
JavaFX some
"com.sun.javafx.collections.VetoableListDecorator" or in a "plain" awt/swing
app some
"sun.java2d.SungGraphics2D".
---rony
On 05.01.2017 19:42, Rony G. Flatscher wrote:
Trying to run a program that gets the screen dimensions using
java.awt.Toolkit.getDefaultToolkit().getScreenSize() reflectively.
On a 64-bit Ubuntu the returned Toolkit is of type sun.awt.X11.XToolkit.
Reflectively invoking its
method getScreenSize() causes the following exception to be thrown on 9-ea+134:
java.lang.reflect.InaccessibleObjectException: unable to make member of
class sun.awt.SunToolkit
accessible: module java.desktop does not export sun.awt to unnamed module
...
A little bit baffled as this is from a script that has been working flawlessly
throughout more than
a decade on various Java versions and which employs documented public methods
only (the sun.awt
object is returned by java.awt.Toolkit). Is this a known "legacy"problem :)
that I could circumvent
somehow or a bug that needs to be reported?
---rony