AccessControlException al analizar un archivo XML utilizando JAVA DOM

Bien, estaba analizando un archivo XML usando JAVA DOM. Cada vez que el programa llega al punto en el que se supone que debe analizar el archivo XML, recibo una "AccessControlException" que dice "acceso denegado". Analicé muchos archivos XML usando JAVA DOM y esta es la primera vez que recibo esta excepción. ¿Qué estoy haciendo mal?

Aquí está el archivo XML:

<?xml version="1.0" encoding="UTF-8" ?>
<root>

</root>

Aquí está el código que se supone que lo analiza:

DocumentBuilderFactory bdf = DocumentBuilderFactory.newInstance();
        DocumentBuilder bd = bdf.newDocumentBuilder();
        Document doc = bd.parse("excersize.xml");

Finalmente aquí está el error que obtengo:

java.security.AccessControlException: access denied ("java.io.FilePermiss
ion" "\excersize.xml" "read")

Editar

Afortunadamente, después de un tiempo lo puse a trabajar usando un archivo de política, sin embargo, por alguna razón, solo funciona si escribo el directorio completo del archivo xml

Esto funciona :

Document doc = builder.parse("file:/B:/Programming/Java/Programs/new/excersize.xml");

pero esto no :

Document doc = builder.parse("excersize.xml"); //The xml file is in the same directory as the java source file, the class file, and the html file

aunque esto es tolerable, me gusta mantener mis archivos "listos para dispositivos móviles" para que no tengan direcciones concretas, sino direcciones relativas al archivo .java y .class. Cualquier ayuda para ayudarme a resolver este problema sería muy apreciada :)

Respuesta 1

Recientemente cloné un proyecto y ejecuté mvn clean install que instaló todas las dependencias enumeradas en mi pom.xml. Cada vez que abro una clase veo muchas declaraciones de importación que intentan ...

Instalé elasticsearch v5.5 en centos y ejecuté el siguiente comando para iniciar el servicio. sudo service elasticsearch start Obteniendo el siguiente error al ejecutar el comando anterior. Comenzando ...

public int saveUserToMap (Usuario usuario) {ReentrantLock lock; if (this.userLocks.containsKey (user.getId ())) {lock = this.userLocks.get (user.getId ()); } else {lock = nuevo ...

Sé que la forma más sencilla de hacerlo es cambiar manualmente la variable PATH, pero ¿cuál podría ser la razón si este cambio no hace ninguna diferencia? Esta es mi ruta variable del sistema: C: \ Archivos de programa \ RSA ...