I am trying to create a Java applet called game , which I have never done before (I always just created standalone applications). My applet works fine when I test it in Eclipse, but when I try to post it on my website, I get the following error in the console:
java.lang.reflect.InvocationTargetException at com.sun.deploy.util.DeployAWTUtil.invokeAndWait(DeployAWTUtil.java:116) at sun.plugin2.applet.Plugin2Manager.runOnEDT(Plugin2Manager.java:3541) at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3072) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1497) at java.lang.Thread.run(Thread.java:680) Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission user.dir read) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374) at java.security.AccessController.checkPermission(AccessController.java:546) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1285) at java.lang.System.getProperty(System.java:667) at java.io.UnixFileSystem.resolve(UnixFileSystem.java:118) at java.io.File.getAbsolutePath(File.java:501) at game.<init>(game.java:117) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at sun.plugin2.applet.Plugin2Manager$13.run(Plugin2Manager.java:3060) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:682) at java.awt.EventQueue.access$000(EventQueue.java:85) at java.awt.EventQueue$1.run(EventQueue.java:643) at java.awt.EventQueue$1.run(EventQueue.java:641) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:652) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Exception: java.lang.reflect.InvocationTargetException
It says access denied (java.util.PropertyPermission user.dir read) , but I can't figure out where it is trying to read something from the user's file system.
He also says at game.<init>(game.java:117) , but I went into my file and output the message to the console on line 114, and it was never written. Then I realized that maybe he was looking at line 117 inside public game() , so I was looking for this, and that was the beginning of the listener for the Mouse event. It was reasonable to me that this would be what Java would need to read, so I deleted all of this and then deleted all imports for a good grade. Then I flushed the Chrome and Java caches and tried again. The same mistake.
- What does it mean I'm misinterpreting it?
- When he says line 117, what is line 117?
- Why is this happening?
- How can i fix this?
- How can I prevent this in the future?
For reference, here is the code for public game() :
public game() throws MalformedURLException{ JPanel board = new chessboard(); board.setSize(320, 320); board.setLocation(0, 0); System.out.println("Got this far"); Piece wp1 = new Piece(wpawn, a2); ... Piece bk = new Piece(bking, e8); board.add(wp1); ... board.add(bk); wp1.setLocation(wp1.square.getPoint()); ... bk.setLocation(bk.square.getPoint()); add(board); repaint(); addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent evt){ for (int i = 0; i < 8; i++){ for (int j = 0; j < 8; j++){ if (squares[i][j].piece != null) System.out.println(squares[i][j].getPointString() + ": " + squares[i][j].piece.type); } } Point p = evt.getPoint(); if (0 < px && px < 319 && 0 < py && py < 319){ Square clicked = getSquare(p); System.out.println("up: " + clicked.getPointString()); if (clicked.piece != null){ pickedUp = true; pickedUpPiece = clicked.piece; } } } public void mouseReleased(MouseEvent evt){ if (pickedUp){ Point p = evt.getPoint(); if (0 < px && px < 319 && 0 < py && py < 319){ System.out.println("down: " + getSquare(p).getPointString()); movePiece(pickedUpPiece, getSquare(p).getColumn(), getSquare(p).getRow()); } pickedUp = false; } else System.out.println("Not picked up"); } }); }
source share