carga de recursos usando ClassLoader

RM:

Tengo un archivo de recursos que necesito para la carga en tiempo de ejecución ... es en src/main/resources

He cargado correctamente el archivo a un InputStream usando:

LoadSAC.class.getClassLoader().getResourceAsStream("someFile.txt");

LoadSAC es el nombre de la clase ...

Sin embargo, el PMD se queja de esto sugiere que el uso

Thread.currentThread().getContextClassLoader().getResource(...)

He intentado numerosas combinaciones y nunca puedo obtener el archivo que se encuentra ... ¿Alguna idea ... Me han controlado un número de búsquedas con un montón de sugerencias pero ninguno parece funcionar ...

Alguna idea ?

Arthur:

Si someFile.txtestá en la misma carpeta que LoadSAC.java, se puede hacer:

InputStream is = LoadSAC.class.getResourceAsStream("someFile.txt");

Si someFile.txtse encuentra en una subcarpeta subdir, puede hacerlo:

InputStream is = LoadSAC.class.getResourceAsStream("subdir/someFile.txt");

Si su método en el LoadSAC.javano es estática, se puede sustituir LoadSAC.class.getResourceAsStream...porgetClass().getResourceAsStream...

Tenga cuidado al compilar con anto maven, por defecto, sólo el .javaarchivo se copian como .classarchivos en el directorio de construcción.

Usted tiene que escribir algunas reglas para incluir someFile.txten la final jar.

En su resourcedirectorio, puede añadir un poco de clase de ayuda como esto:

import java.io.InputStream;
import java.net.URL;

import javax.activation.DataSource;
import javax.activation.URLDataSource;

public abstract class ResourceHelper {

    public static URL getURL(String name) {
        return ResourceHelper.class.getResource(name);
    }

    public static InputStream getInputStream(String name) {
        return ResourceHelper.class.getResourceAsStream(name);
    }

    public static DataSource getDataSource(String name) {
        return new URLDataSource(getURL(name));
    }
}

En LoadSAC.javaapenas llamada:

InputStream is = ResourceHelper.getInputStream("someFile.txt");

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=221206&siteId=1
Recomendado
Clasificación