2012-04-12 2 views
1

Чтобы сделать мой вопрос более конкретным, мне интересно, может ли скомпилированная java-программа импортировать методы из простого файла «text.txt», в основном из текстовых символов? Это возможно? Если да, то как?Может ли java импортировать текстовые методы

+0

Простой ответ ИМХО - нет. Я хорошо вас понял, что вы хотите прочитать метод из файла и выполнить его? Но для этого может быть обходной путь - выполнение компилятора FireWare из программы, и если все в порядке, вы можете использовать этот новый класс, например. Но это зависит от того, что вы хотели бы сделать ... – Betlista

+0

@Betlista да, возможно, см. Мой ответ ниже – alegen

ответ

2

Да, это возможно, вот пример того, как это сделать: example. На этой странице скомпилирована строка, но она является одним и тем же основным принципом. Если вы читаете материал в текстовом файле в строку, вы можете сделать то же самое.

1
  1. Все методы должны быть частью класса.
  2. Вы можете использовать только методы в байт-коде.

IFF ваш текстовый файл определяет уникальный класс, вы можете использовать Java Compiler API и отражение для использования такого метода.

1

Он может, но если вы хотите, чтобы эти методы были написаны в стандартной Java, это потребует немного технического творчества.

По существу, вы можете использовать «API сценариев» (http://docs.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html). Этот API позволяет выполнять «скрипты» на любом языке как часть вашего большего приложения Java. Чтобы заставить его запускать Java, вам нужно создать реализацию ScriptEngine, которая могла бы взять исходный код, запустить его через API компилятора (http://docs.oracle.com/javase/6/docs/api/javax/tools/JavaCompiler.html) и выполнить его.

Если метод не должен быть закодирован на Java, вы можете использовать API-интерфейс сценариев в значительной степени готовый к использованию вместе с одним из стандартных сценариев. (Например, механизм JavaScript очень хорошо протестирован).

1

Это можно сделать легко, используя BeanShell.

http://www.beanshell.org/

были вокруг в течение многих лет, скала, работает.

Смежные вопросы