[JAVA] Chargement des classes depuis Path

Aperçu

Chargez le fichier de classe indiqué par Path.

code

ClassLoaderFromPath.java


import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
public class ClassLoaderFromPath extends ClassLoader{
    private final ClassLoader parent;
    public ClassLoaderFromPath(ClassLoader parent) {
        super(parent);
        this.parent = parent;
    }

    public Class loadClassFile(Path path) throws IOException{
        byte[] data = Files.readAllBytes(path);
        return defineClass(null,data,0,data.length);
    }
}

2017/01/14-20:35

Correction car l'initialiseur statique n'est pas appelé s'il est laissé comme ci-dessus

ClassLoaderFromPath.java


import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
public class ClassLoaderFromPath extends ClassLoader{
    private final ClassLoader parent;
    public ClassLoaderFromPath(ClassLoader parent) {
        super(parent);
        this.parent = parent;
    }

    public Class loadClassFile(Path path) throws IOException,ClassNotFoundException{
        byte[] data = Files.readAllBytes(path);
        return Class.forName(defineClass(null,data,0,data.length).getName());
    }
}

Recommended Posts

Chargement des classes depuis Path
Créer un chemin à partir d'un tableau
Java, classe abstraite pour commencer par débutant
Choisissez une hiérarchie de classes parmi les classes balisées