Как получить экземпляр из файла .class в java

Честно говоря, я даже не знаю, возможно это или нет. Но то, что я пытаюсь сделать, так же, как показано ниже.

  1. Я сделал файл класса из ClassFile.java с помощью команды javac в терминале.
  2. Затем я хочу получить экземпляр из файла .java или файла .class.
  3. Затем я сделал еще один проект в eclipse. Как вы догадались, этот путь к проекту и верхний путь к файлу совершенно разные. Например, файл ClassFile.java/class может находиться в папке «~/Downloads», с другой стороны, новый проект eclipse может находиться в папке «~/workspace/».
  4. Итак, я прочитал файл, на который ссылался на шаге 1 FileInputStream.
  5. Отсюда я просто вставляю свой код.

    общественный класс Основной {

    private static final String CLASS_FILE_PATH = 
            "/Users/juneyoungoh/Downloads/ClassFile.class";
    
    private static final String JAVA_FILE_PATH = 
            "/Users/juneyoungoh/Downloads/ClassFile.java";
    
    private static Class getClassFromFile(File classFile) throws Exception {
        System.out.println("get class from file : [" + classFile.getCanonicalPath() + " ]");
        Object primativeClz = new Object();
        ObjectInputStream ois = null;
        ois = new ObjectInputStream(new FileInputStream(classFile));
        primativeClz = ois.readObject();
        ois.close();
        return primativeClz.getClass();
    }
    
    public static void main(String[] args) throws Exception {
        getClassInfo(getClassFromFile(new File(CLASS_FILE_PATH)));
    }
    

    }

как и ваше предположение, в этом коде есть ошибки. Например, он показывает:

java.io.StreamCurruptedException: invalid stream header : CAFEBABE

есть ли способ получить экземпляр объекта из файла .class или файла .java?

P.S. Я не хочу использовать дополнительные библиотеки.


person Juneyoung Oh    schedule 21.01.2014    source источник
comment
Извините за имя файла, на которое я ссылался в коде, «ClassFile.class», а не «HelloWorld.class». Я просто пытался объяснить ;;   -  person Juneyoung Oh    schedule 21.01.2014
comment
возможный дубликат Как загружать классы во время выполнения из папка или JAR?   -  person Tobias    schedule 21.01.2014
comment
Я думаю, что это может быть в тех же манерах, но немного по-другому. В любом случае, спасибо :D   -  person Juneyoung Oh    schedule 21.01.2014


Ответы (1)


person    schedule
comment
Спасибо :-) Наконец-то я вызываю основной метод, который находится в другом файле .class. Большое спасибо :D - person Juneyoung Oh; 21.01.2014