sirve resource que para ejemplo java url getresource

java - que - ¿Cómo obtener getclass(). GetResource() desde un contexto estático?



java resources path (5)

De: ¿Cómo llamar a getClass () desde un método estático en Java?

Simplemente use TheClassName.class en lugar de getClass ().

Tengo una función en la que intento cargar un archivo en un objeto de URL porque el proyecto de ejemplo lo dice.

public class SecureFTP { public static void main(String[] args) throws IOException , ClassNotFoundException, SQLException , JSchException, SftpException{ File file = new File("/home/xxxxx/.ssh/authorized_keys"); URL keyFileURL = this.getClass().getClassLoader().getResource(file);

Intenté usar SecureFTP.class.getResource , pero aún así no pude compilarlo.

Soy bastante nuevo en Java, así que sé que estoy haciendo algo mal.


El método principal es un método estático, por lo que intentar acceder a this (= el objeto actual) no funcionará. Puedes reemplazar esa línea por

URL keyFileURL = SecureFTP.class.getClassLoader().getResource("/home/xxxxx/.ssh/authorized_keys");


No se puede compilar porque getResource toma un nombre de recurso (un String , y no un File ) como parámetro, para cargar un recurso usando el mecanismo de carga de clase (desde el classpath). Usarlo con un File no tiene sentido. Si desea abrir un archivo, solo use un FileInputStream o un FileReader .

Consulta http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html#getResource%28java.lang.String%29 e incluye el mensaje de error del compilador la próxima vez que tengas una pregunta. .


Una vieja pregunta, pero esto aún no se ha dicho. Puedes hacer esto desde un contexto estático:

ClassLoader classLoader = ClassLoader.getSystemClassLoader(); classLoader.getResource("filename");


SecureFTP.class.getClassLoader().getResource(<<your resource name>>);

Debe hacer el truco!