Is there any way to skip creating policy files by using AccessController.doPrivileged()No. All that does is execute the code concerned with the privileges of the calling code rather than those of whoever called you (if not a system class). It's only of use to people writing frameworks where third-party code with even lower access rights may be calling you. That's not happening in this case. I would take it out - it's only confusing the situation.
I still get this:
I think it might be jre version issue as there are many other people who describe the same thread technique elsewhere.
Exception in thread "Thread-35" java.security.AccessControlException: access denied (java.util.PropertyPermission user.home read)