Выполнить .class файлы в Java - PullRequest
0 голосов
/ 24 сентября 2019

Я планирую динамически выполнить файлы .class / байт-код.Я пытаюсь добиться этого, сначала создав распаковщик, который загружает файлы .class и переходит на основную функцию в файле .class и выполняет ее, пока распаковщик выключается.

Как мне этого добиться, используяJava?

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Вы можете просто написать один основной класс, который вызывает другие классы на основе переданных ему аргументов.

0 голосов
/ 24 сентября 2019

Если вы используете ZIP и если классы (пакеты) размещены в его корне, то распаковывать его даже не нужно.Вы можете использовать свой архив напрямую:

java -classpath my.zip mypackage.MyClass

Если вы хотите запустить один код Java из другого приложения Java, либо используйте Runtime.exec(), что просто, но не совсем надежно (вам может понадобиться узнать местоположениеJRE или конкретный путь в системном PATH), или, что более надежно, но сложнее в реализации, используйте загрузчик классов, позволяйте загружать распакованные классы (вы упомянули дешифрование, поэтому загрузчик классов также должен расшифровывать классы перед их загрузкой), выберите нужный класс с помощью этогозагрузчик классов, затем вызовите метод main.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...